sizeof(ElemType)这是什么意思?为什么会在sizeof函数里面加一个数据类型ElemType?

原题是来自数据结构书上的(Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype));,前面都明白,就是后面 的sizeof(ElemType)不明白,

sizeof(ElemType)就是计算ElemType的大小,比如32位操作系统下sizeof(int)就是4,sizeof(char)就是1.
(Elemtype *)malloc(LIST_INIT_SIZE*sizeof(Elemtype))就是申请LIST_INIT_SIZE个Elemtype对象大小的内存然后转换为Elemtype *指针。比如int *a = (int *)malloc(10*sizeof(int)),就是申请连续的10个4字节(总共40个字节)空间,并将其首地址赋给a。
温馨提示:答案为网友推荐,仅供参考
第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等等,否则无法运行。
相似回答