Visual Studio
一系列 Microsoft 集成开发工具套件,用于生成适用于 Windows、Web 和移动设备的应用程序。
107 个问题
eg:
(Person*) *p = new (Person*) [length];
p[i]=new Person();//i在这里是赋值的一种表现形式
对象p的一个星星接收new
关键字的堆区地址,另一个用来标注Person*
类型数组
记得应该可以用delete[] p
来释放p数组来着,实际结果是等同于delete p
;(就是数组里的Person*
类型没被释放,检验方法是在Person的析构函数写cout无打印)
我知道可以用for循环遍历p[i]后delete,但如题目所说,我该如何用delete[]释放p背后的Person* ?
(delete[] p也不行:)
(如果在析构的时候如果Person*类型的元素有成员是在堆区上的,那么不可读取;)
(如果没有,就会一直走析构)