int main(void) {
const char* kung = "Foo";
delete []kung;
}
在这段代码中,为什么我会得到以下debug assert failed block_type_is_valid
?
是否因为kung指针指向内存中的一个不能解除分配的常量字符串?
答案 0 :(得分:4)
因为你不能delete
字符串文字(kung
指向的字符串)。
您也无法删除自动存储字符串(因此它不是真正的文字部分):
char kung[] = "Foo";
delete []kung; //still illegal
仅使用delete[]
分配的new[]
内存。