微控制器C++编程中的自定义内存管理
1. 动态内存分配的考量
在C++编程里,动态内存分配十分有用,特别是在创建多态对象时。 new
和 delete
运算符可用于动态内存的分配与释放。
-
new
运算符:从存储池(堆)为对象分配内存,并返回指向该对象的指针。若分配成功,new
会使用构造函数初始化内存,并返回新分配初始化对象的非零地址。若堆中内存不足,new
要么返回零,要么抛出std::bad_alloc
异常(取决于所使用的new
版本)。 -
delete
运算符:对使用new
分配的内存块调用delete
,会调用对象的析构函数销毁对象,并释放内存。
以下是 new
和 delete
的语法示例:
class something
{
public:
something() { }
~something() { }
void do_my_thing() { }
};
void do_something()
{
// 使用 new 运算符分配 ps
something* ps = new something;
// 使用 ps 做一些事情