Malloced global variable implementation (C) -
i make linked list globally available across multiple .c files.
i've read how can't identify causing problem.
i declare variable extern in linkedlist.h:
extern linkedlist* canqueue; and in main.c initialise variable sending function in linkedlist.c so:
linkedlist *canqueue=createlist(); this create function in linkedlist.c:
linkedlist* createlist() /*creates empty linked list*/ { linkedlist* mylist; mylist = malloc(sizeof(linkedlist)); mylist->head = null; return mylist; } i want use canqueue in file, cpu.c. i've included linkedlist.h in cpu.c, @ point linked list should available here know. when try access error:
undefined reference 'canqueue' have missed or done wrong?
it seems don't define such global variable. if code compiles:
linkedlist *canqueue = createlist(); then it's not "global" (file-scope) variable. define @ file scope , initialize don't shadow local variable. in all, this:
// @ global scope linkedlist *canqueue; void initialize() // or whatever { canqueue = createlist(); }
Comments
Post a Comment