だから、私はいくつかの助けが必要です。私はC++でプロジェクトに取り組んでいます。しかし、どういうわけかヒープを壊してしまったと思います。std::string
これは、クラスにを追加し、別のクラスから値を割り当てたという事実に基づいていstd::string
ます。
std::string hello = "Hello, world.\n";
/* exampleString = "Hello, world.\n" would work fine. */
exampleString = hello;
スタックダンプでシステムがクラッシュします。したがって、基本的には、コードとメモリ管理のすべてを停止して調べ、どこで失敗したかを見つける必要があります。コードベースはまだ小さい(約1000行)ので、これは簡単に実行できます。
それでも、こういうのは頭がおかしいので、捨てようと思いました。私はLinuxシステムを使用していて、をいじくり回しましvalgrind
た。私が何をしているのか完全にはわかりませんstd::string
が、のデストラクタは無効なフリーであると報告されました。Google検索から「ヒープの破損」という用語を取得したことを認めなければなりません。この種のものに関する一般的な目的の記事も同様にいただければ幸いです。
(前にrm -rf ProjectDir
、C#でもう一度やり直してください:D)
編集:私はそれを明確にしませんでしたが、私が求めているのは、この種のメモリの問題を診断するためのアドバイスです。std :: stringのものが正しいことを知っているので、それは私がやったことです(またはバグですが、Selectに問題はありません)。私が書いたコードをチェックでき、非常に賢い人ならすぐに問題を見つけることができると確信していますが、この種のコード分析を私の「ツールボックス」に追加したいと思います。