有人可以向我解释为什么我对字符串大小为 6 的 malloc 调用返回的 sizeof 为 4 个字节吗?事实上,我给 malloc 的任何整数参数都会得到 4 的 sizeof。接下来,我试图复制两个字符串。为什么我的复制字符串的输出是(NULL)?以下是我的代码:
int main()
{
char * str = "string";
char * copy = malloc(sizeof(str) + 1);
printf("bytes allocated for copy: %d\n", sizeof(copy));
while(*str != '\0'){
*copy = *str;
str++;
copy++;
}
copy = '\0';
printf("%s\n", copy);
}