申し訳ありませんこれまで何時間も作業してきましたが、問題を把握することはできません。私はダブルリンクされたリストを持っています。新しいノードを追加しようとすると、リンクされたリストのすべての値が変更されます。リンクされたリストaddノードは単なるノードではなくすべてのノードの値を変更します
は、今これは私が持っているものです。
void createSub(sibs *root, char *name, int size) {
if(root->subSibs == NULL) {
root->subSibs = (sibs *)malloc(sizeof(sibs));
root->subSibs->name = name;
root->subSibs->time_stamp = createTimeStamp();
root->subSibs->nextSib = NULL;
}
sibs *temp = root->subSibs;
if(temp != NULL) {
while(temp->nextSib != NULL)
temp = temp->nextSib;
}
sibs *t = (sibs *)malloc(sizeof(sibs));
t->name = name;
t->time_stamp = createTimeStamp();
t->nextSib = NULL;
if(temp != NULL)
temp->nextSib = t;
printf("root->subSibs->name = %s\n", root->subSibs->name);
(root->numSub)++;
}
これは、私はそれを百万回を変更した検討完璧ではないかもしれません。誰かが私がここで間違っていることを教えてもらえますか?
root
は私が作業しているルートノードで、subSibs
はリンクリストへのポインタです。私がやっていることは、root->subSibs
が指すそのリンクリスト内の各ノードに名前とタイムスタンプを追加することです。私は何を得る
がある:それはおそらく、本当に一部になります
root->subSibs1: name2;
root->subSibs2: name2;
等...:
createSub(root, name1, size);
プリント:
root->subSibs1: name1;
createSub(root, name2, size);
プリント愚かな間違いだが、どんな助けでもb素晴らしい。私は何時間も努力してきましたが、名前が変わる理由を教えてくれる人が必要です。私はその後、strcpy(root->subSibsi->name, name); for i = 0-5; root->subSibs1->name
プリントのゴミとroot->subSibs2->name
プリント正しい名前と(subSibs1->name
と同じ)、その後root->subSibs3->name
プリントのゴミのように...
初期ブロック後にelseブロックが欠落していますか? –