上部にあるリストデータ構造を宣言して初期化し、関数generateIDを呼び出すと、完全に実行されるプログラムがあります。リストを上部で宣言し、関数内でリストを初期化した場合にも機能します。しかし、私が抱えている問題は、スレッドを使用してリストを作成することです。セグメンテーションエラーが発生し続けます。
私のプログラムの一番上に、私の宣言があります。
List * aLine;
一番下には、2つの機能があります。
void CreateListA(int which)
{
aLine = new List;
currentThread->Yield();
}
void ThreadTest()
{
Thread *gA = new Thread("Creates new List A");
gA->Fork(CreateListA, 1);
generateID();
}
スレッドテストを実行すると、セグメンテーションエラーが発生します。スレッドを使ってリストを作成するときに、メモリがすべて台無しになった場所があると思います。しかし、なぜこれに問題があるのか理解できませんか?同じ方法で(スレッドを使用して)プレーヤーオブジェクトを作成しましたが、プログラムは正常に機能しました。リストデータ構造を作成しようとしていますが、失敗します。*** generateID()は、リストを操作するために追加と削除を使用することに注意してください。