0
我有一段超过300行的程序,除了导致seg故障的fclose外,其他程序都运行了100%......现在,我甚至无法让我的程序运行。 gdb给了我这个错误,我真的不知道如何解释C程序中的Seg错误错误
____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, " "));
}
你运行Linux?如果是这种情况,请在valgrind下运行您的程序。 – fons 2013-02-18 10:17:54
您是否在编译时启用了优化?用'-O0'编译你可能会得到更多的信息。 – slugonamission 2013-02-18 10:18:27
看起来你传递了一个NULL指针作为strtol的第一个参数。 – Michael 2013-02-18 10:18:37