私は課題のテールの実装に取り組んでいます。私はそれを正しく動作させていますが、ランダムな時間に無料でエラーが発生しているようです。
一貫性がある以外のパターンや何かにそれを追跡するために、私は見ることができません。
たとえば、プログラムを「tail -24 test.in」と呼ぶと、複数回実行すると同じ行で誤ったチェックサムエラーが発生します。ただし、ファイルが異なり、印刷する行数が異なる場合でも、エラーなしで戻ってきます。
問題を追跡する方法についてのアイデアは、何時間も無駄にデバッグしようとしてきました。
問題のあるコードは次のとおりです。
行はchar**として定義され、mallocは次のようになります。
lines = (char**) malloc(nlines * sizeof(char *));
void insert_line(char *s, int len){
printf("\t\tLine Number: %d Putting a %d line into slot: %d\n",processed,len,slot);
if(processed > numlines -1){//clean up
free(*(lines+slot));
*(lines + slot) = NULL;
}
*(lines + slot) = (char *) malloc(len * sizeof(char));
if(*(lines + slot) == NULL) exit(EXIT_FAILURE);
strcpy(*(lines+slot),s);
slot = ++processed % numlines;
}