void pop()
{
//create new temp node
struct PersonNode *temp;
//if stack is empty
if(top==NULL)
{
cout<<"nThe stack is empty!!!"; // show message
}
temp=top; // store the top at temp
top=top->next; // make the top previous to current top
delete temp; // delete the temp (current top)
}
這是我用來彈出堆棧的代碼,除了當堆棧是空的,我嘗試彈出它崩潰,我認爲它由於這條線 top = top-> next;如果top
是NULL
C++堆棧函數和錯誤處理
如果你仍然做同樣的事情,那麼NULL檢查是什麼? – Michael
你不需要'struct PersonNode * temp;'中額外的'struct',並且應該將它移到實際分配它的地方(或初始化爲'nullptr')。 – crashmstr
此外,您還需要一個'else'(如果堆棧爲空,您*不會做出更改)。 – crashmstr