2 la9881275 la9881275 于 2015.07.07 14:56 提问

vector对象,push_back访问越界,怎么解决?

自己定义了一个类POINT3D,定义全局变量vector pts,pts.push_back数据时访问越界

8个回答

la9881275
la9881275   2015.07.07 22:52
已采纳

试了下release没有出现问题,但debug就会触发中断,如上图

caozhy
caozhy   Ds   Rxr 2015.07.07 15:18

用pts.size()获取长度,判断下。

la9881275
la9881275 pushback是根据数据的多少自动增加vector长度的啊,获取长度有什么用?
2 年多之前 回复
boweiRNA
boweiRNA   2015.07.07 15:26

怎么可能,vector是可变长的容器,不至于会越界,你再仔细检查你的代码

boweiRNA
boweiRNA   2015.07.07 15:28

应该不是push back这句代码的问题,应该是你访问vector出现的越界的问题

la9881275
la9881275 试了下release可以,debug就会触发中断
2 年多之前 回复
la9881275
la9881275 手机上的,好像不能贴图
2 年多之前 回复
boweiRNA
boweiRNA 回复la9881275: 能贴一下代码吗,不然看不出问题
2 年多之前 回复
la9881275
la9881275 出了pushback没有其他的操作,现在只是往里存放数据
2 年多之前 回复
lx624909677
lx624909677   Ds   Rxr 2015.07.07 16:55

你是如何知道push_back中有越界行为的?

tabe123
tabe123   Rxr 2015.07.07 17:39

用at()函数访问 不会越界的啊

oyljerry
oyljerry   Ds   Rxr 2015.07.07 19:29

push_back应该不会导致越界
你越界时,可以查看一下各个变量的内存数据,就知道到底是什么问题。
是不是还有其他地方导致越界等。

la9881275
la9881275   2015.07.07 22:51

图片说明这是debug时的提示

Csdn user default icon
上传中...
上传图片
插入图片