c语言什么时候用malloc(C语言:什么时候要用到malloc)

本文目录
C语言:什么时候要用到malloc
malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。于是,malloc函数请求延时,并开始在空闲链上翻箱倒柜地检查各内存片段,对它们进行整理,将相邻的小空闲块合并成较大的内存块。如果无法获得符合要求的内存块,malloc函数会返回NULL指针,因此在调用malloc动态申请内存块时,一定要进行返回值的判断。
C语言指针什么情况下需要用形如(int*)malloc(n*sizeof(int))这样的语句申请内存空间不申请内存可以吗
您好,malloc()函数的作用是分配制定字节数的空间。
sizeof()为单目运算 求出对应类型所占用的字节数。
(类型名)为单目运算 为强制类型转换。
要注意的是 malloce函数申请得到的空间是无类型的空间 必须强制转换成对应指针可以指向的空间的类型 。
这里定义的是int *p 所以p指针只能指向int型空间。
sizeof(int) 求得int类型所占的字节数。
malloc(sizeof(int)) 申请一个跟int所占的空间大小一样的空间。
(int*)malloc(sizeof(int)) 将申请得到的空间地址转换成了int类型空间地址。
最后就可以赋值给指向int型空间的p指针了。
定义一个指针,为该指针分配一个一块n个int空间的内存,当然malloc还可能会返回null就是了。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30



