以下是代码片段:
int main(void) {
char sizing[] = "manshcanshcnams cndhan sndhcna snshans";
char *xyz = malloc(sizeof(char));
printf("%ld\n",sizeof(xyz));
xyz = sizing; // IT SHOULD FAIL HERE
printf("Fail %s\n",xyz );
return 0;
}
如您所见,我正在尝试为 xyz 分配更多内存,然后再分配它可以容纳的内存。但输出不会失败。这是未定义的行为吗?