我有一个名为 result
的结构体具有以下定义:
struct result {
void** elements;
size_t n_elements;
};
但是当我尝试使用以下属性初始化它时
{ NULL, 0 }
我收到以下警告:warning: excess elements in scalar initializer
struct result * result_elements = { NULL, 0 };
这是一个错误,因为它需要一个二维数组吗?如果是这样,我认为 NULL 是允许的吗?
干杯:)
最佳答案
这是一个指针
struct result * result_elements /**/;
你尝试初始化它
{ NULL, 0 }
你可以初始化它,例如使用标量初始化程序,例如
NULL
您可以使用非标量初始化程序初始化一个单独的(非指针)变量,例如
struct result avariable = { NULL, 0 };
然后你可以像这样初始化你的指针
struct result * result_elements = &avariable;
关于c - 结构标量初始值设定项中的多余元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50614424/