c - 使用带有 * char 的 strcmp 的段错误

标签 c char segmentation-fault strcmp

我有这个结构

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/

相关文章:

c++ - 理解 char array[] 和 string

c++ - 在 C++ 中向 char* 添加 char 前缀的最佳方法?

c++ - 初始化从 QMainWindow 类到 QDialog 类的 Ui 指针

c++ - 我如何在框架中找到 argc 的地址?

c - 下面的代码块有什么问题?

c - 我在 DbgView 中看不到日志,但在 DeviceTree 中可以看到过滤器

c - boolean 定义

java - 将 int char 转换为 int 而不改变 java 中的值

创建字符链表并打印

C:访问 uint16_t 数字中的各个位?