int main(void) {
const char* kung = "Foo";
delete []kung;
}
在这段代码中,为什么我得到以下
debug assert failed block_type_is_valid
?是否因为kung指针指向了无法在内存中分配的常量字符串?
最佳答案
因为您不能delete
字符串文字(这是kung
所指向的)。
您也不能删除自动存储字符串(因此,它实际上不是文字部分):
char kung[] = "Foo";
delete []kung; //still illegal
只有
delete[]
分配的new[]
内存。