关于new分配内存使用后delete的问题
程序代码:
#include <iostream> #include <new> using namespace std; const int BUFF1=1024; const int BUFF2=5; int LEN[BUFF1]; int main() { int i,j; int* p1,*p2; p1=new int[BUFF2]; p2=new(LEN) int; for(i=0;i<BUFF2;i++) { p2[i]=p1[i]=1000+20*i; cout<<"值p1="<<p1[i]<<"\t"; cout<<"地址p1="<<&p1[i]<<"\t"; cout<<"值p2="<<p2[i]<<"\t"; cout<<"地址p2="<<&p2[i]<<endl; } delete[] p1; delete[] p2;//释放p2就报错了! return 0; }
p1是常规new分配内存。p2是指定一个int类型的内存地址,大小为1024的分配方式.
当释放p2的内存时,就报错了,请问为何不能delete 这个p2 ?如果不释放,会不会造成内存泄露?