1

C では、メモリを割り当てるときに、

char * undecoded_query_array = (char*) malloc(100); 

次のエラーが表示されます。

警告: ヒープ 006D0000 (ベース 006D2000、サイズ 0002F000) の ZwAllocateVirtualMemory が c0000018 に失敗しました

なぜこれが起こっているのか誰にも理解できますか?コマンドライン引数をプログラムに変更したときに問題に気付いたので、非常に奇妙です...元の引数に戻すと、プログラムは再び動作しますか??

また、割り当てる量を 100 から 10000 に変更すると、プログラムが再び正常に動作することもわかりました。

これらの調査結果が関連しているかどうか、または目前の問題に関連しているかどうかはわかりません。

ありがとう。

4

1 に答える 1

0

コマンドライン引数を変更すると効果があるという事実は明らかです。私の推測では、100渡された を何らかの形で破損していると思いますmalloc。問題を示す最小限の完全なコード サンプルを提供してみてはどうでしょうか。または、変数を介してサイズを渡してint、正しい量が要求されていることを確認することもできます。

于 2013-05-17T02:26:25.053 に答える