我使用
在上面的程序中,
那么,这是未定义行为吗?
memcmp
函数比较了两个字符串字面值。#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "abcd";
char str2[] = "ab";
if (memcmp(str1, str2, 4) == 0)
{
printf("equal string\n");
}
return 0;
}
在上面的程序中,
str2
比 str1
短。这意味着字符串 str2
超出了边界访问。那么,这是未定义行为吗?