社区
C++ 语言
帖子详情
C++中成员变量分配空间后,在成员函数中空间消失了
liupeizhao
2020-01-07 03:11:38
我有一个类,名字为A_CLUSTER,其中有一个成员变量叫作_rtcm,一个成员函数叫作decode_char(). 类定义中的相关代码如下:
在main函数中,我用_rtcm.resize()分配了空间,也成功了。
但是进入到decode_char()函数中,_rtcm的空间就没有了。请问是怎么回事呢?
...全文
244
12
打赏
收藏
C++中成员变量分配空间后,在成员函数中空间消失了
我有一个类,名字为A_CLUSTER,其中有一个成员变量叫作_rtcm,一个成员函数叫作decode_char(). 类定义中的相关代码如下: 在main函数中,我用_rtcm.resize()分配了空间,也成功了。 但是进入到decode_char()函数中,_rtcm的空间就没有了。请问是怎么回事呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
GKatHere
2020-01-19
打赏
举报
回复
在某处操作越界,将vector内容覆盖掉了,调试下看哪越界。
qq_40162781
2020-01-19
打赏
举报
回复
是否是第80行的代码改变大小了?
qq_40162781
2020-01-19
打赏
举报
回复
看不出来,应该是其他地方吧,resize是使用rtcm_t的默认构造函数
donwmufromdying
2020-01-10
打赏
举报
回复
你好歹在调用decode前边有类似这种代码:_rtcm.push_back(rtcm_t()).另外,我一般不太会往vector里放这种对象,我都是这么用: vector<rtcm_t*> _rtcm; _rtcm.push_back(new rtcm_t()); 用完了直接purge
donwmufromdying
2020-01-10
打赏
举报
回复
我是真的没看到你往你的vector里放入rtcm_t的对象,所以你的成员函数里怎么可能对呢?你这个vector是空的。你就是resize出100个预留空间有啥用?这个vector里边没对象
taodm
2020-01-09
打赏
举报
回复
size()大小请以打印/messagebox出来的为准,不要以调试器里看到的为事实。
真相重于对错
2020-01-07
打赏
举报
回复
不要这么操做vector ,vector尽可能用push_back,和pop_back
寻开心
2020-01-07
打赏
举报
回复
在你的主函数当中, 有cluster方法调用的语句后面都加一个获取size的函数, 在decode_char被调用前也加一个
这样你可以定位,这个size是什么时候变化的,找到变化的位置再说
liupeizhao
2020-01-07
打赏
举报
回复
我没有可以地释放它,可能是因为C++理解不够深刻,使用得不够正确。不知道什么原因会导致这种情况,程序中不存在变量重名。
liupeizhao
2020-01-07
打赏
举报
回复
在main函数中,_rtcm.resize()之后的size是正常的。如图:
进入函数decode_char(),再获取一次,size就变成0了。如图:
寻开心
2020-01-07
打赏
举报
回复
resize也只是把智能数组的实际长度放大了,不改变内容,其内容也没有实质意义,只是有了有效空间放在哪儿而已
decode_char之前,你可以获取一下size,看看实际的大小是否改变了
系统不会自己改变它,除非你操作了它
这是一个正经昵称
2020-01-07
打赏
举报
回复
信息还是少,看不到相关函数的实现,猜不到
C/
C++
中
局部变量、全局变量与
成员变量
之间的区别
成员变量
是存在类
中
声明的。 依类而生,离开类之后就不是
成员变量
。
成员变量
只能通过对象访问。 存储 :栈
中
注:
成员变量
不能在定义的同时不能初始化。 2、全局变量 在函数外定义的变量,可为本源文件
中
其它函数所...
C++
局部变量
成员变量
全局变量(及文件内外全局变量)
:类的
成员变量
是指在类的定义
中
定义的变量,它们是该类的属性,描述了该类的状态。
成员变量
可以被该类的
成员函数
访问和修改,也可以通过类的对象访问和修改。:静态全局变量也是定义在全局作用域下的变量,但与普通...
C++
中
的静态
成员变量
和静态
成员函数
在
c++
中
,由于面向对象的思维,它与C语言
中
的作用有一些不同,有了类
中
静态成员的说法。静态成员不属于对象,而属于类。不创建对象也可调用。从代码形式上来说没有任何区别。普通类
成员函数
与静态
成员函数
的区别...
C++
静态成员的使用(整理)
C++
中
的静态成员(静态
成员函数
和静态数据成员)属于类所有,不属于类的对象,与普通的成员相比,静态成员无this指针。 静态
成员变量
不同的对象占用不同的内存,这就使不同对象的
成员变量
相互独立,互不影响。...
C++
中
全局变量,局部变量,静态变量和常量
C++
中
全局变量,局部变量,静态变量和常量 转自 https://blog.csdn.net/zcyzsy/article/details/52207085 全局变量 全局变量是在所有函数体的外部定义的,程序的所有部分(其他文件的代码)都可以使用。全局变量不...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章