第1个回答 推荐于2017-11-25
sizeof(char) = 1
sizeof(short) = 2
sizeof(int) = 2(16位机),4(32位机),8(64位机)
sizeof(long) = 4(不知道64位机是多少)
这些其实是每种变量类型所占用的内存的字节数。
malloc()中传入的参数是内存大小,单位为字节。
如果你要定义一个 short 的,元素个数为7的数组,当然就需要 7*2个字节的内存大小。
如果ElemType是结构,也是同理。本回答被提问者采纳
第2个回答 2012-09-24
sizeof是获取类型尺寸的函数。
例如(以32位环境举例):
int a;
sizeof(a) <==> 4
sizeof(int) <==> 4
===============================
byte b;
sizeof(b) <==> 1
sizeof(byte) <==> 1
================================
typedef struct
{
int param1;
int param2;
int param3;
}Elemtype;
Elemtype c;
sizeof(c) <==> 4*3 = 12
sizeof(Elemtype) <==> 4*3 = 12
==================================
malloc尽量使用sizeof而不要凭感觉使用常数(比如12)指定内存大小,否则因为对齐问题或者运行环境的数据类型位数问题很可能出错。
第3个回答 2012-09-24
sizeof(ElemType) 是表示取得ElemType的内存大小。malloc动态分配空间,分配一个ElemType大小的空间。
第4个回答 2012-09-24
Elemtype是伪代码,中文意思就是元素类型,在编辑时需要换成所需要的实际的数据类型,例如int,char等等,否则无法运行。