动态内存分配

一、常用函数

函数名 全部单词 作用
malloc memory allocation 申请空间(连续)
calloc contiguous allocation 申请空间 + 数据初始化
realloc re-allocation 修改空间大小
free free 释放空间

二、函数的细节点

  1. malloc创建空间的单位是字节

  2. malloc返回的是void类型的指针,没有步长的概念,也无法获取空间中的数据,需要强转

  3. malloc返回的仅仅是首地址,没有总大小,最好定义一个变量记录总大小

  4. malloc申请的空间不会自动消失,如果不能正常释放,会导致内存泄漏

  5. malloc申请的空间过多,会产生虚拟内存

  6. malloc申请的空间没有初始化值,需要先赋值才能使用

  7. free释放完空间之后,空间中的数据叫做脏数据,可能被清空,可能被修改为其他值

  8. calloc就是在malloc的基础上多了一个初始化的动作

  9. realloc修改之后的空间,地址值有可能发生变化,也有可能不会改变,但是原本的数据不会丢失

  10. realloc修改之后,无需释放原来的空间,函数底层会进行处理

三、C语言的内存结构

posted @ 2025-05-27 18:37  zhaoyonghui  阅读(13)  评论(0)    收藏  举报