C学习:内存分配之malloc函数和alloca函数辨析 您所在的位置:网站首页 c语言calloc函数是啥 C学习:内存分配之malloc函数和alloca函数辨析

C学习:内存分配之malloc函数和alloca函数辨析

2023-04-01 01:23| 来源: 网络整理| 查看: 265

目录

相同点不同点补充参考资料

简单总结下这两个函数的本质区别,具体的使用方法可去参考资料做进一步研究。

相同点都是动态分配,根据实际运行情况动态分配的内存,而非一开始就分配返回类型相同,都是返回的内存起始地址内存连续,一次调用后,分配的内存都是逻辑连续的调用相同,输入参数都是申请内存的byte数不同点内存分区不同,malloc分配的是堆区内存,需要手动free;alloca分配的是栈区内存,程序自动释放;(注意,栈空间有限仅几kb左右,堆空间远大于栈空间)作用域不同,malloc分配的内存全局可用(类似全局变量),alloca分配的内存仅当前函数可用(类似局部变量)可移植性不同,malloc是C标准库函数里的,可移植通用;alloca在"malloc.h"里,不具有可移植性,一般禁用补充alloca(): Allocation,分配一个连续栈内存malloc(): Memory Allocation,分配一个连续堆内存calloc():Clear Allocation,与malloc的最大区别就是分配后的内存默认初始化清零realloc():Reset Allocation,给已分配的堆内存重新调整大小参考资料基于栈的内存分配 —— alloca菜鸟教程:C++ 动态内存怎样深入理解堆和栈扩展:malloc和calloc区别C语言calloc()函数:分配内存空间并初始化


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有