0
私はエラーが発生し、その関数を知って印刷することにより、自分のコードをテストした後、私は私のコードで不明なエラーが発生している:munmap_chunk():無効なポインタ(しばらく条件でエラー)
void clearTrainSet(){
struct trainSet * curSet=trnHead;
struct trainSet * tmp;
puts("z");
while(curSet!=NULL){
puts("0");
tmp=curSet;
puts("1");
curSet=curSet->next;
puts("2");
free(tmp->input);
puts("3");
free(tmp->output);
puts("4");
free(tmp);
puts("x");
}
trnHead=NULL;
if(filename!=NULL){
free(filename);
filename=NULL;
}
puts("c");
}
プログラムテストした後結果は次のとおりです。
./neuromz -new 1 2 3 -name dsd
Network initialized successfully.
z
*** Error in `./neuromz': munmap_chunk(): invalid pointer: 0x00007ffde363d2c0 ***
Aborted (core dumped)
あなたのコメントで述べたように、しばらくの条件
どのように 'filename'を初期化しましたか? 'free'に渡す値は' calloc'、 'malloc'または' realloc'によって返されましたか? – babon
私は自分のコードを修正してくれてありがとう、その問題は、 'filename = argv [i]'という引数でプログラム 'malloc'の中で2つの方法でfilenameを使うことでした。 –