[求助] 如果new了一个东西后,delete了两次会怎样?
请问new了一个东西后,delete了两次会怎样?????如:
int* ans = new int[100];
delete [] ans;
delete [] ans;
第一次delete后,如果ans指向的内存被其他东西占用,第二次delete会不会把后来其他程序占用的这段内存给释放了???
还有还有..第一次delete后,指针会指向什么地方....
引用一个人的程序/* Programe 2, by lily */
#include <iostream.h>
void main()
{
int * p=new int[3];
for (int i=0;i<3;i++) p[i]=i;
delete []p;
cout<<"p[0]="<<p[0]<<",p[1]="<<p[1]<<",p[2]="<<p[2]<<"\n";
//ater p is delete,change the value of *p
for (int j=0;j<3;j++) p[j]=j+100;
cout<<"p[0]="<<p[0]<<",p[1]="<<p[1]<<",p[2]="<<p[2]<<"\n";
}
结果还是出乎意料,*p的值居然还可以改变呢。结果是:
p[0]=-572662307,p[1]=-572662307,p[2]=-572662307
p[0]=100,p[1]=101,p[2]=102
为什么会这样???
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
还有还有,
如果
int* ans[2];
ans[0] = new int[100];
ans[1] = new int[100][100];
ans[2] = new int[100][100][100];
应该怎么delete??
谢谢~~
[[it] 本帖最后由 cedricporter 于 2009-8-2 11:43 编辑 [/it]]