私はC++を使用してリンクリストを学習しようとしています。ここに私のコードは次のとおりです。C++ポインタが動作しない
#include<bits/stdc++.h>
using namespace std;
struct node
{
int data;
node *next;
};
void show(node *head)
{
node *n;
n=head;
while(n)
{
cout<<n->data<<' ';
n=n->next;
}
cout<<endl;
}
void insert(node *list,int x)
{
list->data=x;
node *t=new node;
list->next=t;
list=t;
}
int main()
{
node *head,*t,*list=new node;
head=list;
for(int i=0;i<10;i++)
{
insert(list,i+1);
}
show(head);
}
私はlist
が指しているメモリに、メモリリストにヘッドが最初に指しますが、insert
関数の呼び出しを挿入した後にされhead
の点を指摘しているが、それは仮定されました発生する。頭は変わらないとは思わない?
何が変わらないと思われますか? – user463035818
'list = t;'これを有効にしたい場合は、ポインタを参照渡しする必要があります。 'node * list'ポインタは値によって渡されます。つまり、ポインタが指している値を変更することができますが、ポインタの変更は関数のローカルに残ります。 – user463035818