动态内存基础(三)
创始人
2024-05-29 19:40:44
0

动态内存的相关问题
● sizeof 不会返回动态分配的内存大小

#include
#include
#include
#include
int main(int argc, char *argv[])
{int* ptr = new int(3);std::cout << sizeof(ptr) << std::endl; //返回的是int*的尺寸而非ptr指向的内存的尺寸std::vector x;x.push_back(10);x.push_back(10);x.push_back(10);x.push_back(10);x.push_back(10); //push_back只影响x中指向的内存(运行期)的大小,而不会影响x(编译期)本身的大小std::cout << sizeof(x) << std::endl; //x中包含指向的内存的指针和其他的一些信息,因此在此系统上返回16个字节return 0;
}

在这里插入图片描述

● 使用分配器( allocator )来分配内存

#include
#include
#include
#include
int main(int argc, char *argv[])
{std::allocator al;int* ptr = al.allocate(3); //只分配(不初始化)一块含有3个int类型的内存al.deallocate(ptr, 3); //这里的3要和al.allocate(3);中的3相同,即分配多少内存,释放多少内存,否则行为是未定义的std::allocator al2;al2.allocate(5); //没有指定一个变量将它保存下来return 0;
}

● 使用 malloc / free 来管理内存

C语言并不强调对象的构造,在C++引入类之后,类的构造函数和析构函数刻画出了对象在构造时和销毁时的行为,这才强调了对象的构造。
malloc / free缺点是不能对齐内存

● 使用 aligned_alloc 来分配对齐内存

Since C11(注意这是C语言的标准)

● 动态内存与异常安全

#include
#include
#include
#include
void fun()
{int* ptr = new int(3);//...   //如果这里产生了异常,那么就不会执行delete ptr;,造成内存泄漏,称为不是异常安全的delete ptr;
}
int main(int argc, char *argv[])
{//... //多次调用f()int* ptr = new int(3);//...   //即使这里产生了异常,由于main()在线程中执行,main()结束线程里的所有资源都会被系统释放,因此不会泄漏内存,称为异常(不是特别安全的,而是产生了异常仍能保证安全)安全的delete ptr;return 0;
}
#include
#include
#include
#include
void fun()
{std::shared_ptr ptr(new int(3));//...   //异常安全的
}
int main(int argc, char *argv[])
{//... //多次调用f()return 0;
}

● C++ 对于垃圾回收的支持

垃圾回收会耗费系统资源,降低程序性能
对象生命周期的精确控制
因此C++并不热衷垃圾回收的支持

参考
深蓝学院:C++基础与深度解析

相关内容

热门资讯

订婚仪式及主持词 订婚仪式及主持词范文(通用3篇)  活动对象的不同,主持词的写作风格也会大不一样。在现在的社会生活中...
古剑奇谭欧阳少恭经典台词参考 古剑奇谭欧阳少恭经典台词参考  大型古装玄幻剧《古剑奇谭》正在湖南卫视热播,剧中,乔振宇饰演温文尔雅...
幼儿园晨会主持词 幼儿园晨会主持词  美好的一天从早上开始,从晨会开始,从大家的好的状态开始,从最好的开始。以下是小编...
诗文诵读展示主持词 诗文诵读展示主持词  主持词没有固定的格式,他的最大特点就是富有个性。在当今不断发展的世界,很多晚会...
大学生毕业典礼的主持词 大学生毕业典礼的主持词(精选5篇)  活动对象的不同,主持词的写作风格也会大不一样。在当下的社会中,...
婚礼的主持词 婚礼的主持词  婚礼的主持词(精选21篇)  主持词的写作要突出活动的主旨并贯穿始终。随着社会一步步...
主婚人致辞 主婚人致辞(精选6篇)  在生活、工作和学习中,大家都写过致辞吧,致辞具有很强的实用性和针对性。还在...
促销活动主持词 促销活动主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在现今人们越来越重视活动...
小品活动的主持词 小品活动的主持词  【篇一】  各位亲爱的老师,同学们,大家下午好!  欢迎来到天津师范大学新闻传播...
森林报好词好句 森林报好词好句  好词:  小巧玲珑 飞云流雾 红日西垂 霞光四射 层峦叠嶂 水天相接  轻歌曼舞 ...
早会主持稿 早会主持稿(精选5篇)  在现在社会,我们可以使用主持稿的机会越来越多,主持稿是主持人为节目进行过程...
优秀员工颁奖词 优秀员工颁奖词大全  在平时的学习、工作或生活中,大家都经常接触到颁奖词吧,颁奖词是在某一主题的颁奖...
女儿出阁司仪主持词 女儿出阁司仪主持词范文  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在当下的中国社...
歌颂祖国串词 歌颂祖国串词一。各位领导 各位来宾,大家晚上好。今天我们这里篷壁生辉,喜气洋溢,是因为有您们的光临,...
小学生庆元旦联欢会主持词 小学生庆元旦联欢会主持词范文(精选5篇)  主持词要注意活动对象,针对活动对象写相应的主持词。在现今...
新年升旗仪式致辞 新年升旗仪式致辞(精选14篇)  在现实生活或工作学习中,说到致辞,大家肯定都不陌生吧,致辞具有思路...
表演半台词 表演三句半台词  敲锣打鼓走圆场  1:锣鼓一响好心情,  2:我们漫游动画城;  3:表演一个三句...
毕业30周年同学聚会主持词 毕业30周年同学聚会主持词范文  老同学聚会,一桌饭菜,谈论着当年的同学情,好不快活呀,往日是多么的...