2018-06-06

mac変数deleteできないだが…

#include <iostream>
int main()
{
int *s = new int();
**s = 100;
delete s;
cout << *s << endl;
}

こんな感じのプログラムポポポーンと書いただけど、中に入れた100が見れちゃうだけど、これやばくない?

普通、何にも入ってないから、変なのが出てくるはずなんだが…;

あ、g++のバージョン9.0.0です。

頭の上にはてなが5個ぐらい並んでいる状態、どうなっているやねん(Windowsユーザー)

  • anond:20180606141623

    deleteはメモリを解放するが解放後の内容は未定義だから、解放前のままでも仕様には合致する

  • anond:20180606141623

    C++で組み込み型をnewってできたっけ

  • anond:20180606141623

    deleteしたかてゼロクリアされるわけではない定期

  • anond:20180606141623

    deleteがやるのはメモリの解放 「もう使わないよ」 という宣言であって、データがいつ削除されるかは実行環境次第 (そういう意味ではfreeのほうがいい名前だったな)

  • anond:20180606141623

    全然関係ない話ですまんが s = 100; だっけ? s = 100; じゃなかったっけ? c/c++ などもう忘れてしまったよ。

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん