c++资源管理手法之raii类-编程思维
目录引入RAII类介绍RAII类的实践 引入 RAII 类作为一种资源管理的手段,为解决 C++ 内存泄漏而出现。 内存泄漏最常见的形式是用裸指针在堆上分配的内存空间(资源),之后忘了释放(简单地说就是 new 了后忘记 delete)。 int* p = new int[10]; // 使用p // ...... // 忘了delete // delete [] p; 即使记得写了 de
morethink program
目录引入RAII类介绍RAII类的实践 引入 RAII 类作为一种资源管理的手段,为解决 C++ 内存泄漏而出现。 内存泄漏最常见的形式是用裸指针在堆上分配的内存空间(资源),之后忘了释放(简单地说就是 new 了后忘记 delete)。 int* p = new int[10]; // 使用p // ...... // 忘了delete // delete [] p; 即使记得写了 de
引言 在 C++98 中有两种变量初始化方式:直接初始化和复制初始化(拷贝初始化)。 这两种初始化方式有着明显的差异,却由于编译器的优化而变得模糊。 直接初始化语法形式:objType obj(params...);,如 int x(2); 复制初始化语法形式:objType obj = param;,如 int x = 2; 其中复制初始化比较适合人类的阅读习惯,但其运行机制和性能与直接初
C语言定制DEBUG信息 背景与问题 在日常编写程序中,我们经常需要输出一些调试信息帮助我们 DEBUG 或者更好的编程,通常我们的做法是这样的: 在需要的地方直接printf(...)输出有用的信息;
C/C++内存对齐 what && why 当用户自定义类型时(struct 或 class),编译器会自动计算该类型占用的字节数。 C/C++ 为什么要内存对齐?我道行太浅,摘抄了网上的一个解释。 为了方便从内存中读取数据。假设没有内存对齐,在内存中存储一个 int 变量 x(占 4 字节),放在了地址 2-5 上。现在要读取 x 到寄存器中,CPU 知道读 int 一次应该