char* myChar=new char[20];
char* myChar2="123";
strcpy(myChar, myChar2);

...

delete[] myChar;

我的问题是,如果strcpy'\0'放在"123"的末尾,那么delete[] myChar将仅删除前3个字符,而不能删除其余的myChar吗?

谢谢...

最佳答案

不,只要您将相同的地址传递给delete []返回的new []delete []就会取消分配new []分配的所有内存。
它只是正确地记住分配了多少内存,而不管该内存中放置了什么。

10-06 09:24