膨大な量の掘り下げと検索の後、問題の根本を見つけました。本質的に、このコードが実行され、独自のプロジェクトで同じエラーが発生します。スマート ポインターを新しい文字列にリセットできないようですが、なぜですか? また、これを回避する簡単な方法はありますか?
scoped_array<char> sptr;
char* nptr = "Hello";
sptr.reset("");
sptr.reset(nptr);
編集 -
私はそれを理解したと思います。リセット中に、スマート ポインターは文字配列 ("") を削除して空にしようとしますが、これは new 演算子が使用されなかったため、ヒープに割り当てられませんでした (エヘム !!?!!?!???!?!)。したがって、このプログラムは、メモリの割り当てを解除しようとすると、惨めに壊れます。私が間違っている場合は修正してください。ただし、文字列自体はプログラムの実行可能なバイトストリーム自体に格納されますか? もしそうなら、将来の参考のために、新しい文字列の割り当てを強制する方法はありますか?