C Linux中的免费新行条件检查

时间:2014-11-20 13:13:51

标签: c

目前我正在使用 程序收到信号SIGABRT,Aborted。

if(dup != NULL || dup[0] != '\0') {
    free(dup);                               
}

我在这里遇到问题,即如果dup包含'\n',它会尝试释放它并给我分段错误。我不想对重复进行硬编码'\n'条件检查,我只想释放重复变量NULL,但如果它包含'\n'那么它就是失败并给我分段错误。

1 个答案:

答案 0 :(得分:0)

这里的逻辑不正确:

if(dup != NULL || dup[0] != '\0') {

应该是:

if(dup != NULL && dup[0] != '\0') {

否则您将尝试取消引用NULL指针。