繁体   English   中英

将指针数组初始化为结构中的NULL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM