有人可以向我解释为什么我对字符串大小为6的malloc的调用返回4个字节的sizeof吗?实际上,我给malloc的任何整数参数都将得到sizeof4。接下来,我试图复制两个字符串。为什么我的输出是复制的字符串(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);
}
一只甜甜圈
相关分类