Ich versuche, eine doppelt verknüpfte Liste in C zu implementieren, und ich muss eine Initialisierungsfunktion verwenden, während ein Größenfeld beibehalten wird. Mein Code ist wie folgt:Initialisierung einer Struktur außerhalb von main() mit malloc (C89)
typedef struct element{
struct element* next;
struct element* prev;
int value;
}element_t;
typedef struct linkedlist{
element_t* head;
element_t* tail;
int size;
}linkedlist;
void init(linkedlist* list){
list = malloc(sizeof(linkedlist));
list->size = 0;
}
int main(int argc, char** argv){
linkedlist* list;
init(list);
return 0;
Wenn ich versuche, Listen- zugreifen> Größe in der init-Funktion, bekomme ich den richtigen Wert, aber wenn ich versuche, aus dem Haupt Listen-> Größe für den Zugriff auf das Programm zurückkehrt ein seltsamer, großer negativer Wert (wahrscheinlich eine Adresse in hex).
Würde gerne wissen, was ich falsch mache. stdlib ist enthalten.
Ich bekomme nicht die Down-Stimmen. Es ist eine klare Frage mit dem bereitgestellten Code. – hetepeperfan