Hallo,
ich muss bis Donnerstag einen Stack implementieren für die Uni und ich habe ein Problem, welches ich mir nicht erklären kann:
Ich habe 2 structs:
Code:
struct stack_element{
/* Wert des Elements */
long value;
/* Zeiger auf (naechstes oder vorheriges) Element im Stack */
struct stack_element *element;
};
/*
* Das struct zur Verwaltung des Stacks könnte zum Beispiel wie folgt aussehen:
*/
struct stack_data{
/* Zeiger auf das unterste/erste Element im Stack */
struct stack_element *first;
/* Zeiger auf das oberste Element im Stack */
struct stack_element *top;
/* Anzahl der Elemente im Stack */
long count;
};
zum Testen ist meine Main-Methode erstmal nur folgendes:
Code:
int main() {
struct stack_data * Stack;
//long Zahl;
// (a):
stack_initialize(&Stack);
return 0;
}
Die Funktion sieht wie folgt aus:
Code:
int stack_initialize (struct stack_data ** Stack) {
//Speicherplatz allockieren
struct stack_data *tmp_d = /*(stack_data *)*/calloc(1, sizeof stack_data);
if (tmp_d == NULL) {
return -1;
} else {
Stack = &tmp_d;
return 0;
}
};
Und die mir völlig unerklärliche Compilermeldung ist:
Code:
chris@Terra-Lap:Blatt6$ gcc stack_2.c
stack_2.c: In function ‘stack_initialize’:
stack_2.c:109: error: ‘stack_data’ undeclared (first use in this function)
stack_2.c:109: error: (Each undeclared identifier is reported only once
stack_2.c:109: error: for each function it appears in.)
Warum nun ist "stack_data" undeclared? Das ist doch das definierte struct.
Lesezeichen