博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于临时变量内存分配和动态内存分配
阅读量:4977 次
发布时间:2019-06-12

本文共 573 字,大约阅读时间需要 1 分钟。

今天,同学问了一个程序上的问题,在函数A中动态分配了的内存,为什么在函数B中还会被动态分配,其值在B中进行queue声明的时候被改变了,毫无疑问,问题肯定出现在内存分配这一方面,刚开始怎么都没有想透这个问题,虽然容器在声明的时候会自动分配一定的预留内存,当时考虑到可能是两次动态分配的时候内存冲突,跟踪了半天,记录了大量的地址也没有找到冲突的地址,后来发现竟然是A中动态分配内存的地方用了临时变量取地址……

 

虽然浪费了不少时间在这个问题上,而且看上去还是很小的一个问题,但是却学到了不少:

1)临时变量申请的内存在其作用域内肯定是不变的,当出了作用域之后,如果没有重新申请临时变量,那么内存中的值依然为该临时变量的最终值,虽然也可以用在后面的处理当中,但是要冒着其值可能随时被修改的风险!!!!

2)临时变量和动态内存分配(new)分配的地址不在同一个内存块中,当发现一个链表的几个节点的内存地址明显不是同一个内存块的时候,需要警惕了,是不是自己在哪个地方用错了!!!

3)容器的声明会分配内存,同时会随意修改分配内存中的值。

4)如何获取容器中元素的地址,这个问题一直没有找到………………虽然调试可以得到……但是无法通过显示调用函数得到

转载于:https://www.cnblogs.com/zhoueh1991/p/3556055.html

你可能感兴趣的文章
细说计算机中的进程与线程
查看>>
集合,对象初始化器
查看>>
数码照片的文件高级信息获取
查看>>
Plugin 'InnoDB' init function returned error.Could not start the service MySQL 解决方法
查看>>
每日英语:China's Youth to Employers: I Quit
查看>>
javascript中的function
查看>>
delete 删除对象属性
查看>>
什么是高可用性(High Availability)?
查看>>
WebService(asp.net的asmx)调用安全认证
查看>>
CSS+Jquery打造的一款可以自动切换(播放)的TAB滑动门效果
查看>>
了解 : angular $filter stateful
查看>>
Python-Matplotlib安装及简单使用
查看>>
数组的逆序
查看>>
win7几个小技巧
查看>>
struts2执行流程(zz)
查看>>
如何控制情绪
查看>>
分布式还是混合式? 谈CDN架构对服务质量的影响
查看>>
matlab中plot使用方法
查看>>
遗传算法入门到掌握(一)
查看>>
输入流输出流
查看>>