我正在尝试将软件移植到Linux。它在Windows上可以很好地工作。
在Linux上,它给我strcmp分段错误:

int main(void) {
    ...
    char* comando;
    char istruzione[100];
    scanf("%[^\n]%*c", istruzione);
    comando = strtok(istruzione, " ");
    if (strcmp(comando, "fput") == 0)
    ...
}


使用数组表示法可以解决此问题,但是我需要使用*表示法,因为我需要使用strtok,它返回一个* char。

最佳答案

strtok可以返回NULL,这意味着您需要在strcmp中使用它之前进行检查。

09-13 01:10