诚城的成长 诚城的成长
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)

诚城

我有N个梦想……
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)
  • C语言简介
  • 环境与工具安装
  • 输出与输入
  • 数据类型
  • 运算

  • 条件判断与循环
  • 内存
    • 栈空间
    • 堆空间
      • 申请空间
      • 释放空间
  • 转义字符
  • 其他
  • C程序实例
  • C语言
诚城
2022-01-01
目录

内存原创

内存 1 个字节等于 8 位。 1byte = 8 bit

二进制转八进制,将二进制 3 位一段;二进制转十六进制,4 位一段;

警告

内存块因操作系统线数不同而不同, 32位系统 4 字节 对齐,即 8位 二进制; 64位系统 8 字节 对齐,即 64位 二进制。

市面上的 CPU 几乎都是小端存储,地位在前,高位在后。 两位一字节 。

笔记

如内存地址为: 0x012FFD00 ,则在内存中表示为: 00 FD F2 01 。

# 栈空间

每个函数都有自己的函数栈空间。大小固定不变。定义的变量都是存到栈空间的。栈的效率比较高,有专门的寄存器存放栈的地址,压栈、出栈操作都有专门的指令执行。由系统自动管理。
一开始就能 确定空间大小 的,使用栈空间存储。

# 堆空间

大小能变动,申请和释放需要自行管理。是 C/C++函数库提供的数据结构,机制复杂。 不确定数据大小 时,使用堆空间存储。

# 申请空间

警告

申请堆空间使用完毕后一定要记得释放!因为子函数结束后,堆空间内存依旧存在,除非主函数结束,才会释放所有相关的堆空间。

# malloc

在堆空间中分配一块 指定大小的内存空间 ,在这块内存空间的函数执行完成后不会被初始化。

(数据类型)malloc(数据长度); // 强制转换数据类型

# calloc

在内存中动态分配 N个长度为M的连续空间 ,并将 每一个字节初始化为0 。内存大小为 N*M个字节 。

(数据类型)calloc(N, M); // 强制转换数据类型

提示

malloc 可以和 calloc 转换。

# realloc

重新分配内存,使内存 扩展到新的大小 。

(数据类型)realloc(指针名称, 新的大小); // 强制转换数据类型

# 释放空间

进程结束时,系统自动释放程序的所有空间。

free(指针名称);

#考研#820#C语言#内存
上次更新: 2022/08/20, 00:50:36
条件判断与循环
转义字符

← 条件判断与循环 转义字符→

Theme by Vdoing | Copyright © 2022-2022 carveybunt | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×

特别申明:

本站所有内容均为个人理解或转载,如有不当之处,敬请大佬指导!