string 分配大空间(10K) 问题

xionggch 2016-01-28 11:09:58
问题如题,需要给string变量分配大空间,存储10K的数据
...全文
259 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-01-29
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
paschen 2016-01-28
  • 打赏
  • 举报
回复
引用 2 楼 xionggch 的回复:
[quote=引用 1 楼 zhangxiangDavaid 的回复:] 你说的是c语言中的char*还有c++中的string类型。 前者,直接动态分配malloc等,即可。 后者,预分配空间不够,会自动分配,不用你管内存大小问题, 只管用就行了。
string sz; sz = szXML + szBuf; 超过一定长度后面的数据会丢失[/quote] 不可能,你怎么看出他丢失了 你存的字符串是否包括'\0'等不可打印字符 如果你是通过输出到控制台查看的话,可能控制台下一次不能显示那么多字符串
sdghchj 2016-01-28
  • 打赏
  • 举报
回复
不至于吧,string的长度用的是size_t,现在都int64了,区区10K不在话下。 如果字符串中间有0是有可能被string截断的。 具体代码是怎样的?
xionggch 2016-01-28
  • 打赏
  • 举报
回复
引用 1 楼 zhangxiangDavaid 的回复:
你说的是c语言中的char*还有c++中的string类型。 前者,直接动态分配malloc等,即可。 后者,预分配空间不够,会自动分配,不用你管内存大小问题, 只管用就行了。
string sz; sz = szXML + szBuf; 超过一定长度后面的数据会丢失
苏叔叔 2016-01-28
  • 打赏
  • 举报
回复
你说的是c语言中的char*还有c++中的string类型。 前者,直接动态分配malloc等,即可。 后者,预分配空间不够,会自动分配,不用你管内存大小问题, 只管用就行了。
paschen 2016-01-28
  • 打赏
  • 举报
回复
不会的,你把不想关的代码先注释了,一步步排查原因
张小飞Official 2016-01-28
  • 打赏
  • 举报
回复
直接用capacity()函数设置10m容量先试试行不行,还丢失的话就说明你的里边有特殊字符吧
xionggch 2016-01-28
  • 打赏
  • 举报
回复
引用 4 楼 paschen 的回复:
[quote=引用 2 楼 xionggch 的回复:] [quote=引用 1 楼 zhangxiangDavaid 的回复:] 你说的是c语言中的char*还有c++中的string类型。 前者,直接动态分配malloc等,即可。 后者,预分配空间不够,会自动分配,不用你管内存大小问题, 只管用就行了。
string sz; sz = szXML + szBuf; 超过一定长度后面的数据会丢失[/quote] 不可能,你怎么看出他丢失了 你存的字符串是否包括'\0'等不可打印字符 如果你是通过输出到控制台查看的话,可能控制台下一次不能显示那么多字符串[/quote] Debug跟踪查看的,szXML,szBuf都是string类型

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧