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 に答える