我有这个结构
typedef struct no
{
char command[MAX_COMMAND_LINE_SIZE];
struct no * prox;
} lista;
lista *listaCommand = NULL;
我正在用一个看起来工作正常的简单函数填充 listaCommand,因为我可以毫无问题地读取这些值,但是如果我尝试比较,比如
strcmp(listaCommand->prox>command, ">")
我只是遇到段错误,即使值 > 在那里,为什么会这样?
最佳答案
strcmp(listaCommand->prox>command, ">")
应该是
strcmp(listaCommand->prox->command, ">")
在您的代码中,listaCommand->prox>command
将被视为比较操作,使用 >
运算符。 C 中的比较返回一个整数,如果为假则为 0,否则为非零。它很有可能会返回 0
,这不是一个有效的内存地址。因此,段错误。
关于c - 使用带有 * char 的 strcmp 的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16729664/