Code:
#include "stdio.h"
typedef struct list_ele* list;
struct list_ele
{
int key;
list next;
};
int main(){
// Falsch, da Pointer frei irgendwo in den Speicher zeigt.
list px;
// 'Richtiger'
struct list_ele foo;
list px = &foo;
px->key = 0;
printf("%i\n", px->key);
return 0;
}
Dein Problem wird darin liegen, dass es ein Pointer ist. Wenn du den benutzt musst du vorher auch den Speicher allozieren.
Oben im Testcode ein Element bei 'foo'.
Stattdessen kannst du auch ein Array fester Größe definieren, um mehrere Elemente zusammen anzulegen der malloc/free nutzen.