0
プログラムのバックグラウンドは、リンクリストを使用して優先順位キューを作成します。ユーザーが優先度を入力するたびに(cinとwhileループを使用して)データは* queue [25]配列に挿入されます。配列内の要素を移動するSIGABRTエラー
私の問題は、すべてのデータをエンキューし、-1を入力して終了すると、プログラムが配列を正しく出力してからSIGABRTエラーがスローされることです。問題は、私はこの行をコメントアウトすると、プログラムが私に与えていない
queuef[i] = queuef[i-1];
このラインである、具体的に
void enqueue(Node *queuef[25], int priority, Node *temp)
{
if (queuef[priority] == NULL) {
queuef[priority] = temp;
} else {
int pos = 25;
for (int i = 25; i > priority; i--)
{
if (queuef[priority+1] == 0)
{
queuef[priority+1] = temp;
break;
} else {
queuef[i] = queuef[i-1];
pos--;
}
}
queuef[pos] = temp;
}
cout << queuef;
}
:
問題は、私のエンキュー機能内にありますエラー。なぜこのエラーが出るのか分かりません。
queuefにアクセスするために使用するインデックスが有効であることを確認してください。 0以上25以下でなければなりません。コードの値をデバッグして、インデックスの値を確認してください。 – seleciii44