C语言的malloc函数有什么用
发布网友
发布时间:2022-05-01 20:41
我来回答
共4个回答
热心网友
时间:2022-05-14 04:03
展开1全部1、这个涉及两个存储区域,堆和栈,用malloc申请的空间在堆上,char
a[10]这个是在栈上。堆和栈最重要一个区别是,栈是系统管理的的,他负责回收和释放,所以有个概念叫作用域,变量的作用域一结束,栈就回收变量的资源。但是堆是程序员管理的,程序员不释放,除非进程结束,这个空间就一直在那,就有了一定灵活性。
2、当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,即malloc函数。
malloc函数原型:extern
void
*malloc(unsigned
int
num_bytes);
头文件:#include
功能:分配长度为num_bytes字节的内存块
返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针null。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。
说明:关于该函数的原型,在以前malloc返回的是char型指针,新的ansic标准规定,该函数返回为void型指针,因此必要时要进行类型转换。
热心网友
时间:2022-05-14 05:21
老大,分配内存的
char *p;
p = malloc(20);
p就指向20字节的内存空间,你就可以用它了
热心网友
时间:2022-05-14 06:56
申请内存空间赋予指针。
指针在使用时就不会乱指,导致程序崩溃。
热心网友
时间:2022-05-14 08:47
晕,是个函数名,你说的是数据结构里面的吗?你光给的名字谁知道?