求高手。讲解 malloc 函数的用法 在数据结构中多次出现,意思申请内存,可是不懂如何用

如题所述

malloc()是用来开辟一个内存空间的,但是要开辟多大的呢?为了解决这个问题,所以要给这个函数加个参数,就是要开辟空间的大小(尽量sizeof函数实现)。
接着,问题又来了,我分配好了,要怎么返回给main函数呢,所以要有返回值,因为开辟的是空间,所以返回的是一个地址,当然要用指针接收了。指针的类型就是你要为那种类型的变量的指针
形式如下:
int i,*p;
p=(int *)malloc(sizeof(int));追问

能讲一下这种格式的意思吗,例如第一个括号内的内容有什么用,是什么意思

追答

这个形式的意思是:分配一个大小为sizeof(int)的动态空间,并且返回一个地址由int型的指针p接收。(int*)是强制转换类型

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-21
malloc是分配空间的函数,返回值为空类型,要想变成想要的类型,必须使用(类型)进行强制类型转换,知道这个就够用啦!!!
第2个回答  2011-10-21
malloc用于动态分配内存。需要动态分配时才需要malloc。如果只是静态分配内存,编译器自身就可以完成,不需要自己通过malloc完成。
第3个回答  2011-10-21
举例:
(1)申请内存,空间为5个int类型大小
int *p,n;
n=5;
p=(int *)malloc(n*(sizeof(int)));
(2)申请内存,空间为5个char类型大小
char *p;
int n;
n=5;
p=(int *)malloc(n*(sizeof(char)));
(3)申请内存,空间为5个自定义的结构变量类型的大小
typedef stu{
char name;
typedef stu *next;
}
n=5;
p=(typedef stu *)malloc(n*(sizeof(typedef stu)));
你根据上面的几个例子对比着自己看一下吧,如果那里不清楚,再问我吧
相似回答