gcc will nicht kompilieren finde den Fehler nicht
-
Hey,
ich bin dabei verkette Listen zu implementieren (momentan eher weniger erfolgreich, es geht zwar langsam aber immerhin überhaupt voran, möchte nämlich nicht Code irgendwie abkupfern)
naja mein eigentliches Problem ist das gcc diesen Code nicht akzeptiert:
#include <stdio.h> #include <stdlib.h> void insertelement(node *element) { node *ptr; if((ptr = malloc(sizeof(node))) == NULL) { printf("Couldn't allocate memory\n"); exit(1); } ptr->next = element; element->next = ptr; } int main(void) { typedef struct node { int data; struct node *next; } node; node *linkedlist; linkedlist = malloc(sizeof(node)); linkedlist->next = NULL; printf("Enter an int\n"); scanf("%d", &linkedlist->data); printf("%d\n", linkedlist->data); insertelement(linkedlist); return 0; }
gcc -Wall gibt das hier aus:
linkedliste.c:24: error: expected ‘)’ before ‘*’ token
und die Warnung
linkedliste.c:53: warning: implicit declaration of function ‘insertelement’
Ich hab i-was falsch gemacht, wahrscheinlich irgentwas wieder wo man im nachhinein denkt, das hätte man sehen müssen/können
-
Die Definition der Struktur "node" sollte schon bekannt sein, bevor du sie (z.B. als Funktionsparameter) verwendest - das heißt in der main() ist es erstens etwas spät dafür und zweitens im falschen Scope. Schreib' den typedef außerhalb der main() hin (am besten am Anfang der Datei).
PS: Mitunter erleichtert es die Fehlersuche, wenn die vom Compiler gelieferten Zeilennummern zum gegebenen Quelltext passen
-
Ah, ok danke, ich hatte das noch vermutet, war mir da aber nicht mehr sicher.
Ja, das mit den Compiler, das nächste mal achte ich drauf ^^