C语言:谁能教教我malloc怎样使用

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:26:12
请不要去网上摘抄那种一大版的,请说说自己的使用经验。
malloc的语法,注意事项什么的。

原型 void * malloc(int size);

参数推荐使用sizeof()确定数据类型的大小,这样写出的程序可移植性比较好;
返回的指针要强制转换成需要是数据类型;
对返回值一定要判断,避免分配失败造成写内存出错。

举例,创建一个有10个元素的整型数组:
int *p;
p = NULL;
p = (int *)malloc(sizeof(int) * 10);
if (!p) {
perror("malloc fail");
exit(1);
}
..........

我能想到的也就是这些了,请方家指正。

返回值类型为 void *,调用格式为:malloc(size),size的类型为unsigned int 。
malloc函数用来分配size个字节的存储区,返回一个指向存储区首地址的基类型为void的地址。若没有足够的内存单元供分配,函数返回空(NULL)
通过调用malloc函数所分配的动态存储单元中没有确定的初值,这个存储单元也没有名字,吸能靠指针来引用它。
例:int *pi;
float *pf;
pi=(int *)malloc(2);
pf=(float *)malloc(4);
因为malloc函数的返回的地址为void *,在调用函数时,必须延用强制类型转换将其转换为所需要的类型。括号中的*号代表返回的是指针类型的

范例:

/* MALLOC.C: This program allocates memory with
* malloc, then frees the memory with free.
*/

#include <stdlib.h> /* For _MAX_PATH definition */
#include <stdio.h>
#include <malloc.h>