このInformit C++ ガイドで、私はこれを読みました:
を使用
malloc()
して非 POD オブジェクトを作成すると、未定義の動作が発生します。//disastrous! std::string *pstr =(std::string*)malloc(sizeof(std::string));
私はここで2点を理解していませんでした:
- ポインターは POD です。では、なぜここで非 POD と呼ばれるのでしょうか。(おそらく、POD をよりよく理解する必要があります。)
- どうしてこれがそんなに悲惨なことになるのでしょうか? (これには文字列の内部構造を理解する必要があると思います。)
説明してください!