文字列をスタックに挿入すると、それが追加されますが、前の要素も変更されます。新しいノードをリンクリストスタックに追加すると、すべての古いノードが新しいノードに更新されます
void push(linkedList *ll,char *item) {
node *newNode = malloc(sizeof(node));
if (ll->size == 0) {
newNode->value = item;
newNode->next = NULL;
ll->head = newNode;
ll->tail = newNode;
ll->size++;
}
else {
newNode->value = item;
newNode->next = ll->head;
ll->head = newNode;
ll->size++;
}
}
int main() {
linkedList* stack = init();
int scan = 1;
char * p = malloc(sizeof(char) * 5);
while (scan = 1) {
scanf("%1s", p);
if (*p >= '0' && *p <= '9') {
push(stack, p);
print(stack);
}
}
WINPAUSE;
}
出力は次のようなものになります。
挿入を5
インサート7
7 - > 7
、インサート8
8 - > 8 - > 8
お返事ありがとうございます。私はこれを理解したら、複数の値を格納する予定でした。まだ文字列を渡しながらこれを修正する簡単な方法はありますか? –
うん。私が言ったように、データをコピーします。それは 'malloc'が十分なメモリを持っていることを意味し、' memcpy'や 'strcpy'を使って新しい場所にコピーします。 – paddy