#include #include #include typedef struct node_st { void *element; struct node_st *next; } Node; Node *Push(Node *head, void *e) { Node *n = (Node *) malloc(sizeof(Node)); assert(n != NULL); // crashes if false n->element = e; n->next = head; return n; } int main(int argc, char **argv) { char *hello = "Hi there!"; char *goodbye = "Bye bye."; Node *list = NULL; list = Push(list, (void *) hello); list = Push(list, (void *) goodbye); printf("payload is: '%s'\n", (char *) list->next->element); return 0; }