gpt4 book ai didi

c - 在结构中将指针数组初始化为 NULL

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:55 34 4
gpt4 key购买 nike

给定结构声明(其中 data 是指向另一个结构的指针数组):

typedef struct {
B* data[10];
} A;

似乎结构中的指针数组不会自动初始化为 NULL:

struct A myA;
myA.data[0] == NULL (false!)

有没有办法在不显式执行的情况下强制将数组初始化为 NULL?

最佳答案

任何类型的对象都可以初始化为零:

struct A myA = { 0 };

这会将第一个标量成员或元素(为嵌套数组、结构和 union 定义的递归定义)初始化为转换为适当类型的 0,如果它是指针,则为空指针值。所有剩余的成员或元素也被初始化为零。

一些编译器可能会警告您缺少初始化程序;因为 = { 0 } 是,或者应该是“将所有内容初始化为零”的常见用法,您可以忽略该警告。

关于c - 在结构中将指针数组初始化为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095168/

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