动态内存基础(三)
创始人
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... 初中英语人称代词语法 篇一人称代词在英语语法中扮演着重要的角色。它们用来代替名词,并且根据人称的不同...
初一记忆中的暖流作文(优选6... 初一记忆中的暖流作文 篇一初一是我人生中一个重要的阶段,那段时间充满了回忆和暖流。初一的生活虽然紧张...
包装无悔生命初一作文(精选5... 包装无悔生命初一作文 篇一包装无悔生命生命是一场旅程,每个人都在这个旅程中扮演着不同的角色,承载着不...
初一满分写景作文共50篇 初一满分写景作文 第一篇时间真快,转眼间我就初一了,整整一个暑假都没有看见过母校的美景了。真是“归来...
月亮抒情作文范文初一推荐90... 月亮抒情作文范文初一 第一篇又到了一年一度的中秋节,我很高兴,因为我喜欢赏月,喜欢听中秋的美丽传说,...
青春风采初中作文(优秀5篇) 青春风采初中作文 篇一:追逐梦想的青春青春是一段美好的时光,是我们追逐梦想的时刻。初中时期,正是我们...
中秋奇趣初中作文(精简5篇) 中秋奇趣初中作文 篇一中秋佳节,是中国传统的重要节日之一。在这一天,人们会与家人团聚,品尝美食,赏月...
七年级我来了作文700字推荐... 七年级我来了作文700字 第一篇经过一个暑假的放松,我终于走进了初中校园的大门。满怀着激动与兴奋,我...
我的姐姐300字作文(精选3... 我的姐姐300字作文 篇一我的姐姐是一个非常温柔可爱的人。她长得高高的,有一头乌黑亮丽的长发,眼睛大...
哎哟妈妈初中优秀作文(通用6... 哎哟妈妈初中优秀作文 篇一我与妈妈的成长小时候,我总是觉得妈妈是世界上最美丽、最聪明、最伟大的人。每...
河南人怎么了作文【优质3篇】 河南人怎么了作文 篇一河南人怎么了?这是一个让人好奇的问题。作为一个河南人,我觉得我们是一个勤劳、坚...
奇妙的汉字作文(精选6篇) 奇妙的汉字作文 篇一汉字是中国文字的代表,有着悠久的历史和独特的魅力。每一个汉字都蕴含着深刻的含义和...
你为什么不说话(精简6篇) 你为什么不说话 篇一在我们的生活中,总会遇到一些沉默寡言的人,他们不善于表达自己的情感和想法,给人一...
退化初一作文(推荐5篇) 退化初一作文 篇一退化初一作文 篇一我所见到的退化社会最近,我注意到了一个令人担忧的现象:社会正在逐...
这样多美丽作文600字_初一... 这样多美丽作文600字_初一作文 篇一梦幻花海梦幻花海是世界上最美丽的景色之一。当你踏入花海时,仿佛...
秋天来了初一作文(实用5篇) 秋天来了初一作文 篇一秋天的脚步悄悄地走进了我们的生活,初一的同学们也开始感受到了秋天的气息。在这个...
写大国工匠精神的作文(通用6... 写大国工匠精神的作文 篇一在当今社会,中国人民正以强烈的工匠精神推动着国家的发展。大国工匠精神是指在...
我的九月初一作文【优秀5篇】 我的九月初一作文 篇一初一的早晨,阳光透过窗户洒进了我的房间,唤醒了我美好的一天。这是我在新学校的第...
描写春天200字初一作文【优... 描写春天200字初一作文 篇一春天是一个美丽的季节,它给大地带来了新的生机和活力。当春天来临的时候,...
不再迷茫初中作文【优选6篇】 不再迷茫初中作文 篇一走出迷茫,迎接初中新生活初中生活对于许多同学来说是一个全新的开始,但同时也会让...