gpt4 book ai didi

c - 尝试 printf 时出现段错误

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

当它尝试打印列表中的第二个成员时,为什么我会得到一个segmentationfault

打印列表的第一个元素后,调试器打开 stdio.h 并说:

At C:\TDM-GCC-32\include\stdio.h:255
At C:\TDM-GCC-32\include\stdio.h:256
At C:\TDM-GCC-32\include\stdio.h:258
At C:\TDM-GCC-32\include\stdio.h:259

这是代码。

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

struct Student {
char *Name;
char *Adresse;
unsigned long Mtnr;
short Kurse;

struct Student *next;
struct Student *previous;
};

typedef struct Student Student;

Student *liste = NULL, *ende = NULL;

void add(char Name, char Adresse, unsigned long Mtnr, short Kurse) {
Student *add;

ende->next = malloc(sizeof(Student));
add = ende->next;

add->Name = Name;
add->Adresse = Adresse;
add->Mtnr = Mtnr;
add->Kurse = Kurse;
add->previous = ende;
add->next = NULL;
ende = ende->next;
}

void Ausgabe(Student *Anfang) {

while (Anfang != NULL) {
printf("%s %s %d %d \n", Anfang->Name, Anfang->Adresse, Anfang->Mtnr, Anfang->Kurse);
Anfang = Anfang->next;
}
}

int main() {
liste = malloc(sizeof(Student));
ende = liste;
liste->Name = "Anna Musterfrau";
liste->Adresse = "Am Schwarzberg-Campus 3";
liste->Mtnr = 22222;
liste->Kurse = 2;
liste->next = NULL;
liste->previous = NULL;

add("Hans Peter", "Kasernenstrasse 4", 4444, 4);

Ausgabe(liste);

return 0;
}

最佳答案

错误在 add() 函数的声明中。字符串应该是字符指针,而不是字符。

void add(char *Name, char *Adresse, unsigned long Mtnr, short Kurse){

关于c - 尝试 printf 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710290/

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