C++入门——指针与数组——Expression: _CrtIsValidHeapPointer(Block)

业无高卑志当坚,男儿有求安得闲?这篇文章主要讲述C++入门——指针与数组——Expression: _CrtIsValidHeapPointer(Block)相关的知识,希望能为你提供帮助。
最近在入门c++,在看《c++ Primer Plus》一书。书中P106提到,删除使用New创建的数组时,是将指针重新指到第一个元素后,再进行的删除操作。代码如下:
int *ptest = new int[3];
ptest[0]=1;
ptest[1]=2;
ptest[2]=3;
cout< < "*ptest "< < *ptest< < endl;
ptest = ptest+1; //此时指针指向第二个元素,也即:ptest[1]
cout< < "*ptest "< < *ptest< < endl; //这里输出 2
【C++入门——指针与数组——Expression: _CrtIsValidHeapPointer(Block)】delete [] ptest; //NOT OK .若是此时进行删除分配的内存,将会报Expression: _CrtIsValidHeapPointer(Block)
delete [] (ptest-1); //OK  地址-1后,将返回第一个元素所在的地址。 或者说,delete 操作符作用于数组时,传递的参数必须是数组开始的地址。
//备注:这个报错是否说明,删除new分配的数组内存时,必须需要指针是指向第一个元素呢?
知识点:
1、使用New分配的内存空间,必须要使用delete进行回收。

    推荐阅读