gpt4 book ai didi

c - 段错误 : 11 when trying to modify struct

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

我试图将我的 char* 参数存储到结构指针的数据成员中。但是当我尝试这样做时,我收到了 Segmentation Fault: 11。

void macro_set(char *name, char *body)
{
verify(body != NULL, "null arg body");

bool nameExists = false;

if(macro_list.name == NULL)
{
macro_list.name = Strdup(name);
macro_list.body = Strdup(body);
}
else
{
struct macro *current = &macro_list;

for(; current != NULL; current = current->next)
{

if(strcmp(name, current->name) == 0)
{
current->body = Strdup(body);
nameExists = true;
}
}

if(!nameExists)
{
current->name = Strdup(name);
}
}
}

当我尝试将名称存储到当前->名称时发生错误。感谢任何可以提供帮助的人!

最佳答案

如果 macro_list 元素中没有一个与 name 匹配,则 for 循环将退出

nameExists = false
current = NULL

那么随后的 if 将为真,并且该行

current->name = Strdup(name);

有效分配

((struct macro *) NULL)->name = Strdup(name);

关于c - 段错误 : 11 when trying to modify struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677841/

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