【发布时间】:2012-01-31 14:24:22
【问题描述】:
我是 C 的新手,我不明白为什么以下两个语句不会产生相同的结果:
char *fields[14] = {NULL};
const int num_fields = 14;
char *fields[num_fields] = {NULL};
选项 1 有效,但选项 2 无效。它说“可能未初始化可变大小的对象”并给出警告“警告:数组初始化程序中的多余元素”。我在 OSX 上使用 gcc 4.2.1。
感谢您分享您的想法!
【问题讨论】:
-
我认为这可能是因为
const int不一定是一个恒定值,这看起来很疯狂。我相信您可以获得指向 const 的指针并修改底层值。
标签: c