我有这个结构
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中的比较返回整数,如果为false,则返回0,否则返回非零.它很有可能会返回0
,这不是一个有效的内存地址.因此,分段错误.