1
 int main(void) {
    const char* kung = "Foo";

    delete []kung;
}

在这段代码中,为什么我会得到以下内容debug assert failed block_type_is_valid

是因为 kung 指针指向内存中无法解除分配的常量字符串吗?

4

1 回答 1

4

因为您不能delete使用字符串文字(这是kung指向的内容)。

您也不能删除自动存储字符串(所以它不是真正的文字部分):

char kung[] = "Foo";
delete []kung;   //still illegal

只有delete[]您分配的内存new[]

于 2012-07-29T21:22:25.870 回答