dar*_*sky 5 c null struct pointers
我有以下结构:
struct elem {
int number;
char character;
};
struct item {
struct elem element;
};
Run Code Online (Sandbox Code Playgroud)
以及以下功能:
void init(struct item *wrapper) {
assert(wrapper != NULL);
wrapper->element = NULL;
}
Run Code Online (Sandbox Code Playgroud)
item->element = NULL产生一个incompatible types in assignment.这是为什么?不应该将结构设置为NULL可以吗?
在C NULL中通常定义如下
#define NULL ((void*)0)
Run Code Online (Sandbox Code Playgroud)
这意味着它是一个指针值.在这种情况下,您尝试将指针(NULL)分配给非指针值item::element并获取相应的消息.看起来你的意图是element成为一个指针,所以尝试以下
struct item {
struct elem* element;
};
Run Code Online (Sandbox Code Playgroud)