delete 释放new所申请堆空间 但原来对象所在的空间什么都没改;指针的值也没改;它只是告诉系统那空间已经是空的了 所以如果你在后面再new一下;原来的对象就被覆盖了 看看下面的程序 #include <iostream.h> class A { public: void set(int i){n=i;} int get(){return n;} private: int n; }; int...
这个指针所占据的存储空间有可能被再次利用。既然有可能被再次利用,又何必费时间在“再次利用它”之前去...
2,如果delete之后你不再打算使用这个指针变量,那随他去吧,让作用域结束它就可以了。3,如果你想继续...
为什么我delete..show()不是虚函数,不需要通过对象内的虚函数表去动态调用,而是和普通函数一样硬编码地址,因此即使A=nullptr也可以正常调用A->show()但标准上这是错误的,不要这样写代码
delete后把这个指针变量赋值为nullptr,因为delete再次删除的时候,delete 0,就是没问题的了,而且也能让别的地方知道这个指针是否被delete过了,也还是很安全的。 用智能指针,这个我用不惯 其它比较好的讲解(仅供参考,对不对自己测试才行) C++ 里 delete 指针两次的后果分为3种情况: ...
内存已经被释放了,但是继续通过指针来使用 这里一般有三种情况: 第一种:就是上面所说的,free(p)之后,继续通过p 指针来访问内存。解决的办法就是给p 置NULL。 第二种:函数返回栈内存。这是初学者最容易犯的错误。比如在函数内部定义了一个数组,却用return 语句返回指向该数组的指针:C语言中return的各种用法。解...
【C/C++后端开发】5道常问c++ 语言相关的面试题(malloc/free 和 new/delete的区别、虚函数表和虚函数表指针的创建时机) 173 0 2023-03-28 16:55:13 未经作者授权,禁止转载 您当前的浏览器不支持 HTML5 播放器 请更换浏览器再试试哦~6投币10分享领取资料、源码、笔记、咨询vip课程最新优惠+V:2207032995 ...
关于delete运算符的描述中,错误的是( ) A. 它必须用于new返回的指针 B. 它也适用于空指针 C. 对于一个指针可以多次使用该运算符 D. 指针名前只用一对方括号符,不管删除数组的维数 相关知识点: 试题来源: 解析 C.对于一个指针可以多次使用该运算符 ...
我用的windows xp sp3,编译器使用的VC6.0.如果main函数这样写的话: int main(int argc, char* argv[]) { int *p; p = new int; delete p; delete p;//该语句出错,应该删除或者注释 return 0; } 也就是说对指针变量P使用了两次delete,而且p所指向的并不是NULL,是一个new出来的具体的有效的地址,因...