[解決済み] CRT detected that application wrote to memory after end of heap buffer "とはどういう意味ですか?
2022-02-11 03:15:18
質問
このコードで困っています。free(q->izv)関数のところで壊れてしまい、デバッグエラーが出てしまいます。
CRT detected that the application wrote to memory after end of heap buffer
この意味が全くわからないので、何か手助けがあればありがたいのですが。
typedef struct izvodjaci{
char *izv;
int broj;
struct izvodjaci *sled;
}IZV;
obrisi_i(IZV *p){
while (p){
IZV *q;
q = p;
p = p->sled;
if (!strcmp(q->izv,"UNKNOWN")) free(q->izv);
free(q);
}
}
ありがとうございました。
どのように解決するのですか?
<ブロッククオートCRT detected that the application wrote to memory after end of heap buffer "とはどういう意味ですか?
ヒープバッファを確保したとします。
char* buffer = malloc(5);
OKです。
buffer
はヒープ上の5つの文字を指すようになりました。
そのバッファに6文字を書き込んだとします。
buffer[0] = 'a';
buffer[1] = 'b';
buffer[2] = 'c';
buffer[3] = 'd';
buffer[4] = 'e';
buffer[5] = '\0';
あなたは今、ヒープを破損しました。あなたは5文字しか書くことが許されなかったのに、6文字も書いてしまったのです。
を行うことが許されるようになりました。 何であれ . 正常に動作することも、クラッシュすることも、すべてのパスワードを中国のハッカーに送信することも可能です。 何でも .
あなたの実装はどうやら最良の選択をしたようで、それは "ミスをしたことを知らせる" です。あなたは とてもとても幸せ というのは、恐ろしい選択肢のどれでもなく、このようなことが起こったからです。しかし、残念なことに、それはあなたにこう伝えます。 バッファが解放されたとき でなく ミスをしたとき しかし、エラーが出たことを喜んでください。
関連
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】「無効なイニシャライザー」と表示されるのですが、何が間違っているのでしょうか?
-
[解決済み】C言語で浮動小数点例外(コアダンプ)発生
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】MB/sとMiB/sを計算する方法は?
-
[解決済み] '{'トークンの前に期待される式
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み] ヒープ破損の検出:通常ブロックの後
-
[解決済み] バッファとはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:cの入力の最後に期待される宣言またはステートメント
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み】valgrind - サイズ8のブロックが割り当てられた後、アドレス ---- が0バイトになる。
-
[解決済み】strcmpが機能しない
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み】Errno: 11, Resource Temporarily Unavailable(リソースが一時的に利用できない