gpt4 book ai didi

c - 第一个 strcpy 有效,但第二个导致段错误

转载 作者:行者123 更新时间:2023-11-30 15:22:27 25 4
gpt4 key购买 nike

我正在努力实现修改结构。由于某种原因,当我注释掉对 strcpy 的第二次调用时,我的第一个 strcpy() 似乎起作用了。但是,当我尝试同时使用两者时,出现段错误。我的名为 record 的结构如下所示:

struct record
{
char name[25]
char address[80]
int yearofbirth
char telno[15]
struct record* next
};

int modifyRecord (struct record *start, char uname[] ,char uaddr[], char utelno[] ) {

struct record *next;
next = start;
while( next != NULL ) {

if ( strcmp((*next).name, uname) == 0 ){
strcpy ( (*next).address, uaddr );
strcpy ( (*next).telno, utelno );
next = (*next).next;
}
else{
next = (*next).next;
}

}

return 0;
}

最佳答案

Plain strcpy 将逐个字符复制,直到遇到空字符 (x'00')。如果您的字符串不以空值结尾,它将继续复制,直到它意外地热化空值或到达允许寻址的内存末尾。

切换到strncpy,您可以在其中指定要复制的最大长度。

此外,您确定您确实会遇到“next == NULL”条件吗?

关于c - 第一个 strcpy 有效,但第二个导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223695/

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