我正在研究这个项目,当我在这行代码上运行valgrind时
int numPointers;
numPointers = atoi(argv[NUM_POINTERS_VALUE]);
我收到了
的valgrind错误无效读取大小1 [PID:8979] 地址0x0未堆叠,malloc'd或(最近)释放
我想知道这里发生了什么以及是否有办法解决它
答案 0 :(得分:2)
使用命令行参数时,最好使用
int main()
{
if(argc != <required number of argument>)
{
printf("Fewer arguments in the input\n");
return 1;
}
// Do your stuff
}
稍后
if(argc[1] != NULL)
numPointers = atoi(argv[1]);
因为atoi(NULL)
会导致导致崩溃的未定义行为。