我有一个result
具有以下定义的结构:
struct result {
void** elements;
size_t n_elements;
};
但是,当我尝试使用以下属性对其进行初始化时,{ NULL, 0 }
会收到以下警告:
warning: excess elements in scalar initializer
struct result * result_elements = { NULL, 0 };
这是一个错误,因为它期望使用2D数组吗?如果是这样,我认为允许NULL吗?
干杯:)
这是一个指针
struct result * result_elements /**/;
您尝试用初始化
{ NULL, 0 }
您可以使用例如标量初始化程序进行初始化
NULL
您可以使用非标量初始化程序来初始化单独的(非指针)变量,例如
struct result avariable = { NULL, 0 };
然后您可以像这样初始化指针
struct result * result_elements = &avariable;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句