首页 相关文章 控制C++的内存分配

控制C++的内存分配


  在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。   具有讽刺意味的是,问题的根源却是C++对内存的治理非常的轻易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。   这当然是个好事情,但是这种使用的简单性使得程序员们过度使用new 和 delete,而不注重在嵌入式C++环境中的因果关系。并且,在嵌入式系统中,由于内存的限制,频繁的动态分配不定大小的内存会引起很大的问题以及堆破碎的风险。  作为忠告,保守的使用内存分配是嵌入式环境中的第一原则。  但当你必须要使用new 和delete时,你不得不控制C++中的内存分配。你需要用一个全局的new 和delete来代替系统的内存分配符,并且一个类一个类的重载new 和delete。  一个防止堆破碎的通用方法是从不同固定大小的内存持中分配不同类型的对象。对每个类重载new 和delete就提供了这样的控制。  重载全局的new 和delete 操作符
  
  可以很轻易地重载new 和 delete 操作符,如下所示:void * operator new(size_t size)
  {
  void *p = mal...[ 查看全文 ]

2016-02-19 标签:

控制C++的内存分配的相关文章

手机页面
收藏网站 回到头部