无法理解sizeof()的返回值
发布时间:2020-12-16 10:33:09 所属栏目:百科 来源:网络整理
导读:我的代码中有这个: int x = 4;char* array = malloc(x*sizeof(char));size_t arraysize = sizeof (array);printf("arraysize: %zun",arraysize); 打印出来的代码, arraysize: 8 为什么是8而不是4? (由于4 * sizeof(char)= 4 * 1) 解决方法 array是代码中
我的代码中有这个:
int x = 4; char* array = malloc(x*sizeof(char)); size_t arraysize = sizeof (array); printf("arraysize: %zun",arraysize); 打印出来的代码,
为什么是8而不是4? (由于4 * sizeof(char)= 4 * 1) 解决方法
array是代码中的指针.因此,sizeof(array)以C字节返回该指针的大小(提醒:C的字节中可以包含8位以上).
所以,8是你的指针大小. 另外,printf()格式字符串中size_t的正确类型说明符是%zu. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |