void addNode(struct Snake *snake, struct Node *prev)
{
/* ... */
prev = (struct Node *)realloc(prev, snake->length * sizeof(struct Node));
}
To powoduje wyciek pamięci. Jeśli już, to tak:
void addNode(struct Snake *snake, struct Node **prev)
{
/* ... */
*prev = (struct Node *)realloc(*prev, snake->length * sizeof(struct Node));
}