易错点:
1.对象delete后没有将对应的指针赋值为nullptr 或NULL ,造成后续的判空问题。
2. C++的赋值都是值传递。体会差别:
3.指针的声明
struct Node{
int data;
Node* next;
Node(int d=0):data(d){};
};
int main()
{ //方法一:错误
n2= n->next;
Node* n2=new Node(2);
//方法二:正确
Node* n=new Node;
n->next=new Node();
}
方法一:第一步将n2的地址赋了一个空指针的地址,第二步,new运算符返回的是一个指向所分配类型变量(对象)的指针,让n2指向了新分配的地址,n->next没有指向n2,错误的根本原因,它指向了新的地址了,并没有在它这里开辟内存。
方法二:先new了一个内存的指针,然后让n->next 指向这个地址


本文探讨C++中指针使用与对象管理的常见误区,重点分析对象删除后未将指针置空的问题,以及指针声明和赋值过程中的正确实践。通过对比两种方法,强调了内存管理的重要性。
1636

被折叠的 条评论
为什么被折叠?



