Вот код:Указатель теряет значение (упрощенно код)
#include "DynIntStack.h"
DynIntStack::DynIntStack(void)
{
}
DynIntStack::~DynIntStack(void)
{
}
bool DynIntStack::IsEmpty()
{
return head;
}
void DynIntStack::Push(int v)
{
Element e = Element(v, head);
head = &e;
}
int DynIntStack::Pop()
{
if(head)
{
int r = head->v;
head = head->next;
return r;
}
}
int DynIntStack::Top()
{
if(head)
return head->v;
}
string DynIntStack::Print()
{
stringstream ss;
ss << "IntStack {";
Element *k = head;
while (k)
{
ss << k->v << ", ";
k = k->next;
}
ss << "}";
return ss.str();
}
указатель «голова», кажется, теряет свою ценность каждый раз, когда я называю толчок. Зачем? Часто элемент головы будет содержать указатель на ITSELF, который невозможен с помощью этого кода ...
Спасибо, я не сделал знать C++ имел сборщик мусора – pixartist
@ user1071988: C++ не имеет GC. Но объекты, выделенные на стек, уничтожаются, когда они выходят за рамки. – nogard
Итак, когда точно созданы объекты в стеке? – pixartist