几个问题:
我在 www.cprogramming.com 上查看以下链接列表的代码:
struct node {
int x;
node *next;
};
int main()
{
node *root; // This will be the unchanging first node
root = new node; // Now root points to a node struct
root->next = 0; // The node root points to has its next pointer
// set equal to a null pointer
root->x = 5; // By using the -> operator, you can modify the node
// a pointer (root in this case) points to.
}
这段代码会导致[小] 内存泄漏,因为他最后从不删除 root 吗?
此外,如果“节点”是一个类而不是一个结构,这会有什么不同吗?
最后,对于这段代码:
#include <iostream>
using namespace std;
class A
{
public:
A(){}
void sing()
{ cout << "TEST\n";}
};
int main()
{
A *a = new A();
a->sing();
return 0;
}
- 我必须在退出主程序之前删除 A 吗?
- 在什么情况下我会使用
A *a = new A()
与使用A a = A()
?