gpt4 book ai didi

c - 为什么下面的代码会出现段错误?

转载 作者:行者123 更新时间:2023-11-30 14:33:15 26 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
struct node{
int data;
struct node *next;
};

void print (struct node* ptr)
{
struct node* iter = ptr;
while (iter!=NULL)
{
printf ("%d",iter->data);
iter = iter -> next;
}
}

void printWantedIndice (struct node*ptr,int indice)
{
struct node*iter=ptr;
int counter=1;
while (counter<indice)
{
iter = iter -> next;
counter++;
}
printf ("%d",iter->next->data);
}

int main ()
{
struct node* head = (struct node*)malloc(sizeof(struct node));
head -> data = 15;
head -> next -> data = 44;
head -> next -> next = NULL;
print(head);

}

我尝试编写链接列表,第一个“打印”函数用于打印每个索引,第二个函数“printWantedIndice”是用于打印所需索引的函数。它给出了段错误。我不明白为什么。你能帮忙吗?

最佳答案

下面一行是原因:

head->next->data = 44;

由于 head->next 未初始化,因此尝试访问它时会出现段错误。

关于c - 为什么下面的代码会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59445300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com