[英]Initializing pointer arrays to NULL within a struct
给定struct声明(其中data
是指向另一个struct的指针数组):
typedef struct {
B* data[10];
} A;
似乎结构中的指针数组不会自动初始化为NULL:
struct A myA;
myA.data[0] == NULL (false!)
有没有一种方法可以强制将数组初始化为NULL而不显式地将其初始化?
任何类型的对象都可以初始化为零:
struct A myA = { 0 };
这会将第一个标量成员或元素(为嵌套数组,结构和联合递归定义)初始化为0
转换为适当的类型,如果它是指针,则为空指针值。 所有剩余的成员或元素也都初始化为零。
一些编译器可能会警告您有关缺少的初始化程序的信息; 由于= { 0 }
是或应该是“将所有内容初始化为零”的常用用法,因此可以忽略该警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.