Following code has to be used in the main-function, but I don't know how it is used.
struct SomeItem
{
enum {MOVIE, MUSIC} itemType;
union {
struct Movie* movie;
struct Music* music;
};
};
this struct is used in a dynamic linked list with previous/item/next pointer, but I don't know how you can set the enum. Or how to initialize it.
I need to know how it would look like in the main-function.
biglist.someitem = ???;
/* declaration I use */
struct Library* biglist;
more code to understand what Im trying to do.
struct Library{
struct SomeItem* someitem;
struct SomeItem* previousItem;
struct SomeItem* nextItem;
};
compiler errors: C2037: left of 'someitem' specifies undefined struct/union 'library' C2065: MOVIE: undeclared identifier
Im still a rookie on ANSI C, so dont shoot me ok ;)
You're using pointers everywhere, so you need to use -> to reference the items.
ie. biglist->someitem->itemType = MOVIE;
The below code compiles fine with gcc -Wall -strict:
struct SomeItem
{
enum {MOVIE, MUSIC} itemType;
union {
struct Movie* movie;
struct Music* music;
} item;
};
struct Library{
struct SomeItem* someitem;
struct SomeItem* previousItem;
struct SomeItem* nextItem;
};
int main(void)
{
struct Library* biglist;
biglist->someitem->itemType = MOVIE;
return 0;
}
(Though this code won't run of course, as I'm not allocating any memory for biglist and someitem!)
biglist.someitem.itemType = MOVIE; /* or = MUSIC */
Or, if someitem
is a pointer,
biglist.someitem->itemType = MOVIE; /* or = MUSIC */
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