【CC++】内存管理

目录

1. C

1.1. 内存操作函数 概述

  1. 分配内存
    1. void *malloc(size_t size);
    2. void *calloc(size_t nmemb, size_t size);
    3. void *realloc(void *ptr, size_t size);
  2. 释放内存
    1. void free(void *ptr)
  3. void *memset(void *s, int c, size_t n);
  4. void *memcpy(void *dest, const void *src, size_t n);
  5. memmove()
  6. int memcmp(const void *s1, const void *s2, size_t n);

1.2. malloc函数

  1. 分配成功,返回被分配内存空间的 指针; 不然,返回NULL;
  2. malloc分配的内存大小 至少为参数所指定的字节数;
  3. malloc需要 我们自己计算字节数,并且返回的时候要强转成指定类型的指针。
    int *p;
    p = (int *)malloc(sizeof(int));
    // new 分配 -- 返回指定类型的指针,并自动计算所需要的的大小;
    int *p;
    p = new int;//返回类型为int* ,分配的大小是sizeof(int)
    p = new int[100];//返回类型是int*类型,分配的大小为sizeof(int)*100
    
  4. 注意:
    1. malloc 只是分配内存,不进行初始化;所以所得到的内存中的值时 随机的;
      – 习惯上 初始化为NULL 或 使用memset函数;
    2. malloc分配的内存空间在逻辑上是连续的,而在物理上可以不连续;

参考:

  1. C PrimerPlus 附录B–参考资料
  2. 黑马
  3. 【c语言】malloc函数详解

2. 如何存储–何时释放

2.1. 变量 – 作用域 & 生命周期

类型作用域生命周期
auto变量一对{}内当前函数
static局部变量一对{}内整个程序运行期
extern变量整个程序整个程序运行期
static全局变量当前文件整个程序运行期
extern函数整个程序整个程序运行期
static函数当前文件整个程序运行期
register变量一对{}内当前函数

2.2. 内存分区

  • 内存分区
    20200715151205

2.3. 存储类型

  • 存储类型
    20200715151719
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值