我有一个按照如下方式定义的结构体。
typedef struct COUNTRY {
char Code[3];
char Country[30];
int Population;
float Expectancy;
struct Country *Pointer;
} COUNTRY;
我看到过这样分配的结构体数组:
COUNTRY *countries = calloc(128, sizeof(COUNTRY));
也许可以这样做:
COUNTRY *countries = malloc(128 * sizeof(COUNTRY));
但这句话是什么意思:
COUNTRY countries[128] = {};
因为我仍然能在所有情况下写入每个条目的字段。第三个选项只是不好的形式吗?对我来说,它似乎更好,因为你可以将那行代码与其余变量声明放在 main() 之外。否则,你只能在 main() 或其他函数中使用 calloc() 或 malloc()。 我做错了什么吗?