c++中delete后赋NULL的问题

2024-12-03 10:42:24
推荐回答(3个)
回答1:

  new是跟系统借一块内存,成功的话,系统给你一块内存,并且系统会保证不会把你分配的内存给其他申请到

delete是跟系统还一块内存,成功的话,系统会让其他人可以分配到这块内存

而new和delete的内存内容系统是不关心的,所以一般malloc后,都会初始化内存

释放内存是没有改变内存内容

指针是指向那块内存,申请到了内存就会指向那块内存,跟内存内容没有关系

如: int* pInt = new int;
pInt = NULL; //这里跟分配的内存没关系,只是将pInt这个指针指向NULL而已 (这里由于没有delete会内存泄漏)

回答2:

说的也是啊,析构之后ptr也会被销毁的不需要置为NULL
执行时发生什么错误?
是不是你的c不是动态分配的…在你这里delete[] ptr相当于delete[] c…
你把接受const char*的构造函数发来

回答3:

代码没贴全,目测是你代码问题