C++ 删除数组指针c++;什么时候增加指针?
我有: 但如果我有:C++ 删除数组指针c++;什么时候增加指针?,c++,pointers,C++,Pointers,我有: 但如果我有: int *ptr = new int[8]; delete[] ptr; // it ok, all ptr is delete; 我的问题: delete[]是否将所有ptr从ptr[0]删除到ptr[7]或仅从ptr[1]删除到ptr[7]? 如果它从ptr[1]删除到ptr[7],那么delete[]如何知道这次要删除的实际大小;这是未定义的行为,通常意味着它会使程序崩溃 传递到delete[]的指针必须是以前从new[]返回的指针。没有例外*new[]返回了指
int *ptr = new int[8];
delete[] ptr; // it ok, all ptr is delete;
我的问题:
delete[]
是否将所有ptr
从ptr[0]
删除到ptr[7]
或仅从ptr[1]
删除到ptr[7]
?
如果它从
ptr[1]
删除到ptr[7]
,那么delete[]
如何知道这次要删除的实际大小;这是未定义的行为,通常意味着它会使程序崩溃
传递到delete[]
的指针必须是以前从new[]
返回的指针。没有例外*new[]
返回了指向数组第一个元素的指针,因此必须将指向数组第一个元素的指针传递给delete[]
*唯一的例外是,您可以传递空指针,在这种情况下,它将不起任何作用。您不能只释放分配的一部分-全部或无是您唯一的选择。
int *ptr = new int[8];
ptr++;
delete[] ptr;