目前我正在使用 程序收到信号SIGABRT,Aborted。
if(dup != NULL || dup[0] != '\0') {
free(dup);
}
我在这里遇到问题,即如果dup包含'\n'
,它会尝试释放它并给我分段错误。我不想对重复进行硬编码'\n'
条件检查,我只想释放重复变量NULL
,但如果它包含'\n'
那么它就是失败并给我分段错误。
答案 0 :(得分:0)
这里的逻辑不正确:
if(dup != NULL || dup[0] != '\0') {
应该是:
if(dup != NULL && dup[0] != '\0') {
否则您将尝试取消引用NULL指针。