假设:
struct A
{
char *a;
char *b;
}
如果我在编译时知道a
和b
的大小是值得的,如果我使用固定数组大小而不是或者它什么都不改变?它会节省很多malloc调用,其中大部分是循环播放的,我觉得它最快。
struct A
{
char a[256];
char b[32];
};
答案 0 :(得分:4)
如果您可以使用您想要的第二个选项执行所有操作,那么这是一个更好的选择。除非必要,否则应避免动态内存分配。有一些理由可以选择第一个选项。显而易见的是,你可能有一个可变的大小,但你已经表明情况并非如此。以下是其他一些原因:
a
和b
,这可以通过指针完成,但不能使用数组。A
个对象。