gpt4 book ai didi

c++ - 隔离段错误 - 但为什么会发生?

转载 作者:行者123 更新时间:2023-11-30 00:58:35 25 4
gpt4 key购买 nike

使用 DevC++ 调试器(对它来说还是个新手),我很确定我已经隔离了一个段错误场景,但我不知道它为什么会发生。

void LinkedList::Add(const char *Word){
ListNode *newNode = new ListNode;
strcpy(newNode->Word, Word);
newNode->Next = NULL;
...
}

段错误发生在“newNode->Next = NULL;”处。但是,如果我删除它上面的 strcpy,则不会发生段错误(但这意味着我的 newNode->Word 是空的)

编辑:抱歉,这是 ListNode:

struct ListNode
{
char *Word;
LNodePtr Next;
};

最佳答案

如果 Word 成员是一个指针,您的 strcpy 将覆盖未分配的内存。

在那之后,大多数操作都会失败。

使用 std::string 而不是 const char* 会在很多地方节省你的时间。

关于c++ - 隔离段错误 - 但为什么会发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5990094/

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