C++ 教程

C++ 教程 C++ 简介 C++ 下载安装和环境配置 C++ 快速入门 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学运算 C++ 布尔值 C++ 条件语句 C++ Switch 语句 C++ While 循环 C++ For 循环 C++ Break/Continue 语句 C++ 数组 C++ 结构体 C++ 枚举 C++ 引用 C++ 指针 C++ 内存管理

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载 C++ 作用域 C++ 递归 C++ Lambda 表达式

C++ 面向对象

C++ OOP C++ 类和对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++友元函数 C++ 继承 C++ 多态

C++ 错误

C++ 错误 C++ 调试 C++ 异常 C++ 输入验证

C++ 数据结构

C++ 数据结构和 STL C++ 向量 C++ 列表 C++ 栈 C++ 队列 C++ 双端队列 C++ 集合 C++ 映射 C++ 迭代器 C++ 算法

C++命名空间

C++ 命名空间

C++ 项目

C++ 项目

C++ 如何使用

C++ 两个数相加 C++ 随机数

C++ 关键字与函数参考

C++ 参考 C++ 关键字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 高级教程

C++ 动态内存 C++ 预处理器 C++ 信号处理 C++ 多线程 C++ Web 编程 C++ 正则表达式

C++ 实例

C++ 实例 C++ 练习 C++ 测验 C++ 编译器

C++ 标准库参考

C++ 标准库 - 简介 C++ 标准库 - <fstream> C++ 标准库 - <iomanip> C++ 标准库 - <ios> C++ 标准库 - <iosfwd> C++ 标准库 - <iostream> C++ 标准库 - <istream> C++ 标准库 - <ostream> C++ 标准库 - <sstream> C++ 标准库 - <streambuf> C++ 标准库 - <atomic> C++ 标准库 - <complex> C++ 标准库 - <exception> C++ 标准库 - <functional> C++ 标准库 - <limits> C++ 标准库 - <locale> C++ 标准库 - <memory> C++ 标准库 - <new> C++ 标准库 - <numeric> C++ 标准库 - <regex> C++ 标准库 - <stdexcept> C++ 标准库 - <string> C++ 标准库 - <thread> C++ 标准库 - <tuple> C++ 标准库 - <typeinfo> C++ 标准库 - <utility> C++ 标准库 - <valarray>

C++ 模板库参考

C++ STL 库 - <array> C++ STL 库 - <bitset> C++ STL 库 - <deque> C++ STL 库 - <forward_list> C++ STL 库 - <list> C++ STL 库 - <map> C++ STL 库 - <queue> C++ STL 库 - <set> C++ STL 库 - <stack> C++ STL 库 - <unordered_map> C++ STL 库 - <unordered_set> C++ STL 库 - <vector> C++ STL 库 - <algorithm> C++ STL 库 - <iterator>



C++ 内存管理


内存管理

内存管理是指控制程序使用多少内存以及如何使用内存的过程。这包括创建、使用和释放不再需要的内存。


C++ 中的内存

在 C++ 中创建变量时,编译器会自动为其预留内存空间。

例如:

int myNumber = 10;

上面的代码告诉程序:"我需要空间来存储一个整数。" C++ 会自动管理这部分内存,所以这种情况下,你无需担心内存管理。


获取内存大小

您可以使用 sizeof 运算符检查变量类型使用的内存量:

示例

#include <iostream>
using namespace std;

int main() {
  int myInt;
  float myFloat;
  double myDouble;
  char myChar;

  cout << sizeof(myInt) << " ";     // 4 bytes (typically)
  cout << sizeof(myFloat) << " ";   // 4 bytes
  cout << sizeof(myDouble) << " ";  // 8 bytes
  cout << sizeof(myChar) << " ";    // 1 byte
  return 0;
}
亲自试一试 »

了解类型大小有助于编写更高效的代码,尤其是在大型程序中。


你需要自己管理内存吗?

有时需要,有时不需要。

  • 对于普通变量(例如 int x = 10;),C++ 会自动处理内存。
  • 但是,当程序运行时需要手动创建内存(例如:根据用户输入),则需要自行管理并在程序运行结束后清理内存。

如果您的程序使用过多内存,或者忘记清理不再需要的内存,则可能导致性能下降甚至崩溃。

这就是为什么了解内存管理很重要。它可以让您更好地控制内存,并有助于避免常见的错误。


接下来是什么?

在 C++ 中,您可以使用指针直接访问和修改内存。

这很强大,但也存在风险。如果指针使用不当,可能会意外地修改或损坏程序内存的其他部分。

在下一章中,您将学习如何使用指针手动创建内存(使用new关键字),以及如何使用delete释放内存。