2

コードの 1 つのセクションを参照すると、valgrind でいくつかのエラーが発生します。基本的に、キューとして機能する構造体のリンク リストがあります。ここに私のエンキュー関数があります:

PcbPtr enqPcb(PcbPtr *headofQ, PcbPtr process){
    PcbPtr c = *headofQ;
    PcbPtr d = c;
    if (!*headofQ) {
        *headofQ = process;
        return *headofQ;
    }
    while (c->next) {
        c = c->next;
    }
    c->next = process;
    return d;
}

PcbPtr は構造体へのポインタです。Valgrindは、whileループで「条件付きジャンプまたは移動は初期化されていない値に依存します」など、あらゆる種類のものを提供しています。これに何か明らかに問題があるのですか、それとも Ive が含めた範囲を超えていますか? ありがとう

4

1 に答える 1

0

next参照先のメンバーを初期化することを検討してくださいprocess( を呼び出す前にまだ行っていない場合enqPcb()):

PcbPtr enqPcb(PcbPtr *headofQ, PcbPtr process){
  PcbPtr c = *headofQ;
  PcbPtr d = c;
  process->next = NULL;

  ...
于 2012-06-07T10:36:07.857 に答える