リンクされたリストの概念を使用してプログラムを作成する必要があります。ubuntu、ideone.com で動作しますが、大学のテスターに提出すると、セグメンテーション違反/バス エラー/メモリ制限の超過/スタック制限の超過 (リストの 1 つ) が報告されます。
おそらく、DevCpp だけが落ちるため、問題はメモリの解放であり、free を使用するコードの一部が発生します。
ということで、Valgrindを使ってみたのですが、ログに何が書かれているのかよくわかりませんが、やはり「Invalid read of size 8」とか「Invalid write of size 8」と書いてあるのと、メモリ割り当て(sizeof blocksは8、しかし必ずしもそうではないと思います)。さらに、「エラーの概要: 48 個のコンテキストから 76 個のエラー (抑制: 2 個から 2 個)」および「総ヒープ使用量: 20 個の割り当て、20 個の解放、160 バイトの割り当て」(この行は重要だと思います) と書かれています。
最後に、問題がありそうなコードがあります。
TITEM *borrowItem(const char *to)
{
TITEM *newItem = (TITEM *)malloc(sizeof(newItem));
newItem->m_Next = NULL;
newItem->m_To=(char *)malloc(sizeof(to));
strcpy(newItem->m_To,to);
newItem->m_Cargo = NULL;
return newItem;
}
その問題はすでに割り当てにあると思います。この関数は、新しいリスト項目ポインタを作成するために使用されます。ここでメモリが解放されます。
void freeItem(TITEM *item)
{
free(item->m_To);
free(item);
return;
}
m_To は文字列で、m_Next は次のアイテム ポインターです。