mailao
日历
网志分类
· 所有网志 (183)
· 我乱写的 (3)
· Graphics & Engine (4)
· Learn DFA (112)
· 抄的 (60)
· 未分类 (4)
站内搜索
友情链接
· 我的歪酷 非非共享界

订阅 RSS

0086588

歪酷博客

不超越惰性的防线,信念将在彷徨中夭折。
« 上一篇: VC6下面的custom build 下一篇: 新社会歌谣 »
mailao @ 2008-01-11 16:50

这是个很诡异的问题。
vector内放的是一个二维空间内的一个坐标值。
vector< FAVector2D<unsigned int> > m_FPs;
FAVector2D这个模板,我自己定义的,用了少说有几个月了没出过问题,昨天偏偏在执行push_back操作时出现错误
Invalid Address specified to RtlValidateHeap( 003D0000, 003B7878 )
,debug跟踪到堆里边内存操作,是某个地方释放内存pUserData出错了。即是内存越界问题啦。
百度搜到的解都说是因为自定义类的拷贝构造,赋值函数等有问题。
查了半天也没看出是啥问题,想还是换个类吧。自己定义的可能有问题一时半会儿也查不出来。
正好这几天看了点OGRE的代码,就从里边剪出来一个Vector2的类,能够实现我要的东西。
这下总该好了吧,就在觉得峰回路转,柳暗花明时,“bang!”又报错了!搞了一晚上都没搞定。
百度中能想到的关键词都搜了,Primer都翻了几遍关于vector操作的也不行。
哎~正在无可奈何时,出现一点曙光:
在m_FPs所在类的构造函数中加了一句:m_FPs.reserve(100);
OK! 搞定!

哎,还是编码习惯不好。使用stl时应该估算程序使用内存大小,做个预留。嗯以后谨记啊!mellow!

正在high时,旁边正在调整分区容量的笔记本上,PM罢工啦!靠!重启以后进不了grub啦!幸好在实验室,临时刻了一张
ubuntu 7.10 的live CD。恢复了grub。

NND,以后硬盘大小还是不要随便调整的好。




最新评论


love911

2009-11-08 14:57 匿名 59.173.*.*

真的非常感谢您的这篇日志,我调了三个多小时的程序终于您提 示的这句reserve成功解决问题了


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定