c - 在 C 语言中,当您将 NULL 指针传递给 strcmp() 时究竟会发生什么?

标签 c

我读到以下内容会导致未定义的行为。

strcmp(foo, NULL); 

但是可以这么说,“幕后”到底发生了什么? foo 是垃圾数据吗? NULL 是否被取消引用?导致“未定义行为”的细节是什么?

最佳答案

这取决于实现,它可以自由假设您的参数是有效的(即在这种情况下不为空)。行为可能会或可能不会从执行到执行,或从一个实现/平台到另一个实现/平台重现。

关于c - 在 C 语言中,当您将 NULL 指针传递给 strcmp() 时究竟会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21865041/

相关文章:

c++ - 是否有可能 malloc() 分配的缓冲区与使用 mmap() 分配的另一个缓冲区重叠?

c - 节目入口自认

c - 维吉尼亚密码。键的大小

c - 大端到小端转换的优化代码

c - scanf 的工作并检查输入是否为 int

c++ - 格式化值类型 float(编程语言 C/C++)

c - 使用条件变量停止运行 pthreads 的最佳方法

c - 在公共(public)上下文中使用循环时需要简化逻辑

c - 我如何指向另一个指针然后增加第一个指针的值而不更改第二个指针的值

c - gcc -c 参数出现问题并设置输出文件