リストの先頭に「単純リンクリストの最後に要素を挿入する」というこの実装の問題点は何ですか? tmp
までリンクリストの最後に要素を挿入しますか?
void insert (int x, cel *ini) {
cel *tmp = ini;cel *left;
while (tmp != NULL)
{
left = temp;
tmp = tmp->prox;
}
cel *new =(cel*) malloc(sizeof(cel));
new->value = x;
left->prox = new;
new->prox = NULL;
}
あなたがチェックしているがnullの場合、その後、あなたはtmp->prox=new
を追加します。
void insert (int x, cel *ini) {
cel *tmp = ini;
while (tmp != NULL)
tmp = tmp->prox;
cel *new = malloc(sizeof(cel));
new->value = x;
tmp->prox = new;
new->prox = NULL;
}
に達しています。 –
whileループは、tmpがnullになるまで繰り返し、ヌルポインタを間接参照しようとします。 tmp-> proxがnullになるまでループする必要があります。 –
'malloc()'が成功したかどうかはチェックしません。それは問題です。どのようにして最初の要素をリストに追加しますか? –