gpt4 book ai didi

c - C 程序中的 Seg 错误

转载 作者:行者123 更新时间:2023-11-30 17:54:29 24 4
gpt4 key购买 nike

我有一个超过 300 行的程序,除了导致段错误的 fclose 之外,100% 运行...现在,我什至无法让我的程序运行。 gdb 给了我这个错误,老实说我不知道​​如何解释

    ____strtol_l_internal (nptr=0x0, endptr=0x0, base=10,
group=<value optimized out>, loc=0x349c78d580) at ../stdlib/strtol_l.c:298
298 while (ISSPACE (*s))

谁能告诉我这是什么意思?

 readLinesFromFile(FILE* fPtr, int* num1, int* num2, char** strs, int lines)
{
int i;

char data[50];

for (i = 0; i < lines; i++){
fgets(data, 50, fPtr);
strcpy (*(strs + i), strtok(data, " "));
*(num1 + i) = atoi(strtok(NULL, " "));
*(num2 + i) = atoi(strtok(NULL, " "));
}

最佳答案

您确定在调用 fclose 时会触发 SIGSEGV 吗?

看起来您只是简单地传递一个 NULL 指针作为 strtol 函数的第一个参数(在代码的其他部分)

另一个选择可能是堆栈完全困惑。

尝试使用gdb运行它,当它崩溃时使用命令where查看堆栈

关于c - C 程序中的 Seg 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14933904/

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