Ho creato una classe per gestire una pila con operazioni di inserimento in coda, cancellazione di un elemento,ecc... per ora ho definito solo le funzioni di stampa e di inserimento, ma già ho un problema.Se eseguo il codice mi da segmentation fault, il debugger mi dice la riga dove si verifica ma non capisco il perchè.
La riga di codice l' ho indicata nella riga con gli asterischi.
codice:using namespace std; // gestione di una pila con aggiunta degli elementi in testa, coda, cancellazione degli elementi e ordinamento tramite una classe class Stack { public: Stack(); void Add(); void Sort(); void Delete(); void Print(); private: int x; Stack *next; }; Stack::Stack() { x=0; next=NULL; } void Stack::Add(void) { Stack *pointer; pointer=next; if(pointer==NULL) cout << "ok"; while(pointer!=NULL) pointer=pointer->next; pointer->next=new Stack; ******* Qua avviene il segmentation fault **** } void Stack::Print(void) { Stack *pointer; pointer=next; cout << pointer->x << endl; while(pointer->next !=NULL) { pointer=pointer->next; cout << pointer->x << endl; } } int main (int argc, const char **argv) { Stack a; a.Add(); return 0; }