I have the following struct:
struct elem {
int number;
char character;
};
struct item {
struct elem element;
};
and the following function:
void init(struct item *wrapper) {
assert(wrapper != NULL);
wrapper->element = NULL;
}
item->element = NULL
yields a incompatible types in assignment
. Why is that? Shouldn't setting a struct to NULL be okay?
In C NULL
is generally defined as the following
#define NULL ((void*)0)
This means that it's a pointer value. In this case your attempting to assign a pointer (NULL
) to a non-pointer value item::element
and getting the appropriate message. It seems like your intent is to have element
be a pointer here so try the following
struct item {
struct elem* element;
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With