我读到以下内容会导致未定义的行为。
strcmp(foo, NULL);
但是可以这么说,“幕后”到底发生了什么? foo
是垃圾数据吗? NULL
是否被取消引用?导致“未定义行为”的细节是什么?
最佳答案
这取决于实现,它可以自由假设您的参数是有效的(即在这种情况下不为空)。行为可能会或可能不会从执行到执行,或从一个实现/平台到另一个实现/平台重现。
关于c - 在 C 语言中,当您将 NULL 指针传递给 strcmp() 时究竟会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21865041/