在malloc函数中为什么常用sizeof来设定内存分配的大小?
例子:为40个整数变量分配内存并赋值,然后系统在收回这些内存。
#include<stdlib.h>
#include<stdio.h>
void main()
{
int *p;
p = (int *)malloc(40*sizeof(int));//用sizeof(int)计算int类型数据的字节数
if(!p)
{
printf("内存已用完");
exit(0);
}
printf("OK");
free(p);
}
程序中用了sizeof以保证此程序可以移植到其他系统上去。
注意:
(1)malloc(8)表示:开辟一个长度为8个字节的内存空间。
(2)sizeof()功能是返回一个变量或者类型的大小,以字节为单位,对 sizeof() 的处理都是在编译阶段进行。