发布网友 发布时间:2022-04-24 16:00
共4个回答
热心网友 时间:2023-10-21 03:17
这个问题很多人都曾经问过,但这是个无用的问题!
你只需要记住,new之后,在不使用该指针变量时进行delete释放就好!
至于delete会做哪些事,如何去释放,不是现在的能力能理解(了解)了的,那是系统底层的应用,不用过多关心。
一般情况,释放只是告诉操作系统,“我”不再使用该内存了,可以提供给“别人”使用了!
而在没有人使用时,你当然可以再次读到相应的数据。
int *p=new int ; delete p ; 非数组的释放
int *pa=new int[5] ; delete [] pa ; 数组的释放
热心网友 时间:2023-10-21 03:18
delete[] pNumber后,pNumber所指向的int型的变量被撤销,但是pNumber所存放的地址值是不变的,所以pNumber[1]后将原先pNumber的值加1,现在pNumber存放的是new int[2]开辟的第二个存储空间的地址了(没有被销毁),再经过cout << pNumber[1] << endl;后将输出第二个存储空间的值。
热心网友 时间:2023-10-21 03:18
Linux下eclipse编译器表示输出正常,你的第二个cout结果32我表示不理解,请问阁下的编译器是?你的删除方法没有问题,之后给pNumber=NULL,就万无一失了,嘎嘎
热心网友 时间:2023-10-21 03:19
我不知道你用的什么编译器,我用VC6.0编译时正常的