foo, bar, and C! are not copied to anywhere so how can I point to something that "doesn't exist"?Code:#include <stdio.h> #include <stdlib.h> struct node { void *data; struct node *next; }; struct node *rootp = NULL; void append(char *str) { struct node *newnode = malloc(sizeof(struct node)); newnode->data = str; newnode->next = NULL; if (rootp == NULL) rootp = newnode; else { struct node *walker = rootp; while (walker->next != NULL) walker = walker->next; walker->next= newnode; } } void mostrar_lista(void) { struct node *walker = rootp; while (walker != NULL) { printf("%s\n", walker->data); walker = walker->next; } } int main(void) { append("foo"); append("bar"); append("C!"); mostrar_lista(); return 0; }