【发布时间】:2011-12-18 18:10:36
【问题描述】:
我正在尝试在 c 中动态分配一个结构数组,以便我可以像进行静态声明一样引用它们。我知道 calloc() 执行将所有分配的内存初始化为 0 的附加步骤。但是,除此之外,以下代码是否可以完全互换 2?如果我使用 fread() 和 fwrite() 将这些数据结构进出文件,那么 calloc() 是帮助还是阻碍呢?
#define MAGIC 13
struct s_myStruct {
int a[6000][400];
int b[6000][400];
int c[6000][400];
};
struct s_myStruct stuff[MAGIC];
vs
struct s_myStruct *stuff = calloc(MAGIC, sizeof(s_myStruct);
谢谢。
【问题讨论】:
-
这和文件有什么关系?
-
您也可以为您的数组使用“通用零初始化器”:
struct s_myStruct stuff[MAGIC] = {0};
标签: c arrays malloc structure calloc