Chciałbym zaimplementować stos przy użyciu połączonej listy.Podwójny wskaźnik dereferencji po dereferencji
Aby zaimplementować pop() dla mojego stosu, mam wywołujący przekazać podwójny wskaźnik (wskaźnik do wskaźnika), który (ewentualnie) wskazuje na szczyt mojego stosu (pierwszy wpis na liście połączonej).
Powodem, dla którego robię to w ten sposób, jest to, że w ten sposób osoba dzwoniąca może trzymać wskaźnik statyczny na stosie.
Moja powiązana element listy struct:
struct Element {
int value;
struct Element *next;
};
pop() Realizacja:
int pop (struct Element **stack) {
int popped_value = *stack->value;
*stack = *stack->next;
return popped_value;
}
Problem mam próbuje dereference podwójnego wskaźnika ** stosu. Ten kod wygeneruje następujący błąd:
error: request for member ‘value’ in something not a structure
error: request for member ‘next’ in something not a structure
W moim umyśle, albo * stack-> wartość lub ** stack.value powinno działać, aby pobrać popped_value, ale pojawia się identyczny błąd.
Po prostu użyj dobrego "" stosu -> następnego " – Kapichu