gpt4 book ai didi

c - 需要帮助了解段错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:21 25 4
gpt4 key购买 nike

我知道段错误是什么以及导致它们的原因,我的问题是为什么我的指针会导致它们?我正在尝试编写一个简单的链表,添加到包含 5 的节点上,并且在 temp->x = 5; 处出现段错误。我认为 malloc() 应该允许我访问它需要的内存?

#include <stdio.h>
#include <stdlib.h>

struct node{
int x;
struct node *next;
};


void append(struct node *root){

struct node *temp, *right;
temp = (struct node *)malloc(sizeof(struct node));
temp->x = 5;
right = (struct node *)root;

while(right->next != NULL){
right = right->next;
}

right->next = temp;
right = temp;
}

int main(){

struct node *root;

root = NULL;


int userInput;

printf("Pick Operation: ");
scanf("%d", &userInput);

if(userInput == 1){
append(root);
}


}

最佳答案

你的错误在这里:

while(right->next != NULL){
right = right->next;
}

您正在尝试检查“right->next”,其中“right”为 NULL。

关于c - 需要帮助了解段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466819/

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