c语言中的 *sizeof 问题

#define DEFAULT_BUF_LENGTH (16 * 16384)
buffer = malloc(DEFAULT_BUF_LENGTH * sizeof(uint8_t));

请问这里的buffer size是多大 ?

选A因为union是共用体,他们用同一段内存空间,每次用时,都是覆盖式的,第一次时分配1个字节,第二次时分配2个字节,公用上次分配的一个自己的空间,同理下推,结果就是类型长度最长的那个。所以int
2个字节。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-23
对。。。在VC++下,int占4个字节,a数组有2个成员,所以结果是8.。。
其他编译器中int占2个字节的话结果就是4
第2个回答  2019-03-17
double是双精度浮点数,比float 能表示小数点儿后更多的位。
语法上可以不一样,malloc的参数是分配置内存的大小,你写个240代替30*sizeof(double)
也是可以的,但是不直观。返回值是void *,  前面的(double*)是强制类型转换,应该是要赋值给一个double*的变量。追问

???这个问题里面没有出现double啊。。

本回答被网友采纳
相似回答