这是我的结构
struct ListItem{
int data;
struct ListItem *next;
};
假设链表的第一个节点有data = 0,我想编写一个for循环,创建一个大小为5的链表,但我不确定如何工作
我尝试了以下
int main(int argc, char* argv[]){
struct ListItem a;
a.data = 0;
for (int i = 1; i < 5; i++){
struct ListItem *pointer = &a;
struct ListItem nextnode;
nextnode.data = i;
a.next = &nextnode;
pointer = pointer->next;
}
}
但结果是 a.data = 0 和a.next-&gt; data = 4
答案 0 :(得分:0)
不要修改。以一个临时节点开始。使它成为新节点的下一个点,然后将temp节点设置为新节点。也在堆中动态分配。否则,每次循环运行后内存将被释放
答案 1 :(得分:0)
struct ListItem a[5] = { {0, NULL}};
struct ListItem *pointer = &a[0];
for (int i = 0; i < 5; i++){
a[i].data = i;
if(i != 5 -1)
a[i].next = &a[i+1];
}