C++内存分配策略(先分配再使用/边分配边使用)

C++中使用内存堆空间时,若已知整体数据量的大小,则优先分配一定空间再使用;不能一边分配内存一边使用

例如:

已知需要加载一部分文件数据到内存中,且文件数据中记录的是一个一个同一类的实例对象数据

数据文件结构:总的对象个数 + 连续的对象数据

加载读取数据方式一:

1、读取对象总个数

2、利用对象总数首先分配一定的堆空间

3、for循环中读取一个一个的对象数据,并赋值到2中分配的内存空间中

 

加载读取方式二:

1、while循环中,每次读取一个对象数据,直至文件结束

2、循环体中,每次向系统申请一个对象大小的堆空间,并读取一个对象数据,赋值到刚才分配的空间中

 

加载读取方式一  优于 方式二:一次性向系统申请足够的内存,只需new一次,且系统给出的堆空间地址连续;比方式二多次调用new申请空间开销小很多

 

posted @ 2021-10-26 16:53  小油人  阅读(130)  评论(0编辑  收藏  举报