gpt4 book ai didi

c:将字符串传递给函数失败

转载 作者:行者123 更新时间:2023-11-30 20:12:43 27 4
gpt4 key购买 nike

我不知道为什么我的程序在将字符串传递给函数时崩溃。我很确定它应该有效。 :/

void add_person(node **head, char name[MAXDL], char surn[MAXDL]);

int main()
{
int i;
char nm[MAXDL], sn[MAXDL];
node **head = NULL;
for (i = 0; i < 3; i++)
{
scanf("%s", nm);
scanf("%s", sn);
add_person(*head, nm, sn); //IN THAT LINE THE PROBLEM OCCURS
}
//...

system("PAUSE");
return 0;
}


void add_person(node **head, char name[MAXDL], char surn[MAXDL])
{
//body
}

该程序的目的是创建一个列表并向其中添加三个人。我已经评论了该行,其中有什么不对的地方。调试器:“ConsoleApplication2.exe 中的 0x00D91A54 处抛出异常:0xC0000005:读取位置 0x00000000 时发生访问冲突。

如果有此异常的处理程序,则程序可以安全地继续。”

好吧,老实说我不知道​​那里出了什么问题。 :(

最佳答案

尝试进行以下更改。

void add_person(node **head, char name[MAXDL], char surn[MAXDL]);

int main()
{
int i;
char nm[MAXDL], sn[MAXDL];
node *head = NULL; // <-------------- **head -> *head
for (i = 0; i < 3; i++)
{
scanf("%s", nm);
scanf("%s", sn);
add_person(&head, nm, sn); <----------- *head -> &head
}
//...

system("PAUSE");
return 0;
}


void add_person(node **head, char name[MAXDL], char surn[MAXDL])
{
// assuming that you will allocate node in this function like so
*head = malloc(sizeof(node)); <------------- allocation here?
}

关于c:将字符串传递给函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561767/

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