gpt4 book ai didi

c - 如何在 C 中将动态指针数组初始化为 NULL?

转载 作者:行者123 更新时间:2023-12-04 12:18:27 24 4
gpt4 key购买 nike

我是 C 的新手,我不明白为什么以下两个语句不会产生相同的结果:

char *fields[14] = {NULL};

const int num_fields = 14;
char *fields[num_fields] = {NULL};

选项 1 有效,但选项 2 无效。它说“可能无法初始化可变大小的对象”,并发出警告“警告:数组初始化程序中的元素过多”。我在 OSX 上使用 gcc 4.2.1。

感谢分享您的想法!

最佳答案

第二个对象称为 VLA(可变长度数组),由 C99 定义。为了实现你想要的,你可以使用这个:

for (i = 0; i < num_fields; i++)
fields[i] = NULL;

问题的要点是 const int num_fields14 非常不同,它不是常量,它是只读的。

关于c - 如何在 C 中将动态指针数组初始化为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com