大圣配音:C语言中的内存分配问题

来源:百度文库 编辑:高考问答 时间:2024/05/05 09:26:28
s=(int *)malloc(n*sizeof(int));
这是什么意思啊?
调用malloc函数为什么前面要加(int *) 不是调用时不用加吗?
还有n*sizeof(int)是什么意思?
形参不是unsigned size吗?

为了跨平台,因为不同得编译器int的大小是不相同的。有的16位有的32位。sizeof(int)是取得当前的int大小,乘以N就是总共申请的空间大小了。
malloc返回一个指针但是这个指针的类型是void *,也就是它不知道是什么类型的指针。但是你知道里面的元素是int类型,所以(int*)强制转换成int的指针。

楼上的