牛哥帮忙!内存泄露,delete出错!
代码如下:
#include <iostream.h>
main()
{
int *pArray;
pArray=new int;
int a[]={1,2,3,4,5,6};
pArray=a;
for(int i=0;i<=5;i++)
cout<<*pArray+i;
delete [] pArray;
return 0;
}
编译结果正确为123456,但是有个Debug Assertion Failed窗口弹出来!提示_block_type_is_valid(pHead->nBlockUse)
代码改为:
#include <iostream.h>
main()
{
int *pArray;
pArray=new int;
int a[]={1,2,3,4,5,6};
pArray=a;
for(int i=0;i<=5;i++)
cout<<*pArray+i<<endl;
// delete [] pArray;
return 0;
}
运行结果正确,没有任何错误提示,再次运行此代码依然没出错提示,说明内存没有泄露,但是有了pArray=new int;
这句却没delete释放内存居然不出错,加上delete [] pArray;这句居然会出错,我要崩溃了!
麻烦各位牛哥帮小弟个忙解答解答,感激不尽!