我在Python和Java方面经验丰富,但我最近决定学习C++.我决定做一个快速的整数堆栈实现,但它有一个我无法理解的大量内存泄漏.当我弹出节点时,它似乎没有释放内存,即使我在弹出它时明确删除旧节点.当我运行它时,它使用150mb的内存,但在我清空堆栈后不会释放任何内存.我很感激任何帮助,因为这是我第一次涉足没有垃圾收集的语言.这是在64位Kubuntu上用gcc 4.3编译的.
//a trivial linked list based stack of integers
#include <iostream>
using namespace std;
class Node
{
private:
int num;
Node * next;
public:
Node(int data, Node * next);
int getData();
Node * getNext();
};
Node::Node(int data, Node * next_node)
{
num = data;
next = next_node;
}
inline int Node::getData()
{
return num;
}
inline Node* Node::getNext()
{
return next;
}
class Stack
{
private:
unsigned long int n;
Node * top;
public:
Stack(int first);
Stack();
void push(int …Run Code Online (Sandbox Code Playgroud)