I have the following struct:
struct elem {
int number;
char character;
};
struct item {
struct elem element;
};
and the following functi
main->element is wrong usage. You cannot access a structure's element using it's name. It should be wrapper->element. You should access it using the variable name.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;
};
NULL is a pointer value, wrapper->element is not a pointer, therefore you cannot assign it NULL
In addition to the previous answers, sometimes it makes sense to create a NULL struct. http://en.wikipedia.org/wiki/Null_Object_pattern