首页 > 系统相关 >c分配内存底层函数 realloc

c分配内存底层函数 realloc

时间:2023-02-03 10:24:00浏览次数:52  
标签:__ int realloc 内存空间 分配内存 内存 include 底层

realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。


如果将分配的内存减少,realloc仅仅是改变索引的信息。


如果是将分配的内存扩大,则有以下情况:
1)如果当前内存段后面有需要的内存空间,则直接扩展这段内存空间,realloc()将返回原指针。
2)如果当前内存段后面的空闲字节不够,那么就使用堆中的第一个能够满足这一要求的内存块,将目前的数据复制到新的位置,并将原来的数据块释放掉,返回新的内存块位置。
3)如果申请失败,将返回NULL,此时,原来的指针仍然有效。

 

实例:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[], char* envp[])
{
	
	int * addr1 = (int *)malloc(2 * sizeof(int));
	cout << addr1 << endl;
     \\可以改动一下重新申请内存的值来看看内存地址的变化 int * addr2 = (int *)realloc(addr1, 4 * sizeof(int)); cout << addr2 << endl; return 0; }

  

标签:__,int,realloc,内存空间,分配内存,内存,include,底层
From: https://www.cnblogs.com/woodx/p/17088293.html

相关文章

  • C++ 虚函数底层表达
    转载一篇乐哥的博客,对虚函数,虚函数表和派生类对象赋予给基类指针时地址的变化等会有更深的理解https://mp.weixin.qq.com/s?__biz=Mzk0MzI4OTI1Ng==&mid=2247489554&idx=1......
  • Mysql事务底层原理
    本文转载自https://www.cnblogs.com/yidengjiagou/p/16413825.html 事务有四大特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),简称......
  • 指针(涉及一些底层知识)
    指针1.指针种类*一维指针**(multiply)二维或多维指针[*]指针数组(*)[]数组指针lpfn函数指针void*指针函数2.一维指针2.1概念​ 用来存放内存地址的变量......
  • 随堂笔记3-spring之底层架构核心概念解析
    1.BeanDefinition:bean定义,有一些特定属性描述bean,比如bean类型-class,scope作用域,lazyInit是否懒加载2.beanDefinitionReader:beanDefinition读取器,比如AnnotationBeanDe......
  • 随堂笔记2-手写模拟spring底层原理
    userServce->无参构造方法->普通对象->依赖注入->初始化前(postStruct)->初始化(initializationBean)->初始化后(aop)->代理对象->bean大概流程:scan扫描注解,获取注......
  • 1.1 架构的底层逻辑-介绍
    主要目标GOALS了解架构的底层逻辑,跳出CRUD思维用面向对象思维来进行分析和设计,掌握最佳设计原则和设计模式通过OPM对业务进行分析和建模,通过RGCA四步方法来进行架构......
  • 1.4 架构的底层逻辑-架构师
    架构师的职责与能力架构包含业务架构数据架构应用架构技术架构技能地图分析能力:软件架构分析,项目管理和测量的常规分析思维领导力:工作指导,团队建设,建立愿景......
  • 1.3 架构的底层逻辑-架构介绍
    架构是什么架构是定义系统的结构,行为及其他视图的模型架构虚设是有关系统的正是描述以及呈现,以有助于了解系统结构和行为的方式来组织认识架构4+1视图模型在4+1......
  • 1.2 架构的底层逻辑-系统思维
    认识系统系统是什么1.由若干实体组成2.系统也是另一个系统中的实体如何认识系统,系统有什么特征系统具有形式属性(静态结构)和功能属性(动态结构)系统同时也是一个提......
  • 数码管动态显示+基于底层显示模块的应用层程序开发+Protues仿真
    1项目要求(1)数码管开机初始显示----,正常运行时显示2013;(2)数码管显示任意四位十进制数;2仿真测试3参考程序3.1主函数#include"DisplaySmg.h"voidmain(){......