社区
C++ 语言
帖子详情
new分配的字符串中包含有0,最后该如何回收~~
wormszm
2007-05-07 03:56:55
举个例子来说下
char str[]="this is test!!";
buf = new char[255];
memset(buf,0,strlen(buf));
strcpy(buf,str);
delete[] buf; //这里回收就会出问题
请问这样的问题如何解决
...全文
214
8
打赏
收藏
new分配的字符串中包含有0,最后该如何回收~~
举个例子来说下 char str[]="this is test!!"; buf = new char[255]; memset(buf,0,strlen(buf)); strcpy(buf,str); delete[] buf; //这里回收就会出问题 请问这样的问题如何解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iambic
2007-05-07
打赏
举报
回复
没看出你举的例子有什么错,就算有错误也不是被delete的字符串有0的问题。
另一方面,既然你用new,说明你用的是C++;既然你用C++,直接用std::string就完了,动态分配干什么?
缓冲区溢出的就是你这种情况,以为自己申请了“比可能遇到的最长字符串还长的数组”。
expter
2007-05-07
打赏
举报
回复
strlen(buf)!=255 哦
珍惜生命远离CPP
2007-05-07
打赏
举报
回复
很明显这里错误
memset(buf,0,strlen(buf));
可能存在越界,所以delete的时候出错
0皮皮0
2007-05-07
打赏
举报
回复
char str[]="this is test!!";
buf = new char[255];
memset(buf,0,255);
strcpy(buf,str);
delete[] buf;
这里的strlen(buf);有可能不等于255;
lei001
2007-05-07
打赏
举报
回复
char *buf = NULL;
char str[]="this is test!!";
buf = new char[255];
memset(buf,0,strlen(str));
strcpy(buf,str);
delete[] buf;
这样试试,看有没有问题?我认为问题和设置为0,没有关系,而是strlen(buf)计算的结果是不可知的,很有可能出现越界操作了
rtdb
2007-05-07
打赏
举报
回复
delete[] buf; //这里没有问题,回收时与内容无关。
不过这句有点问题:
memset(buf,0,strlen(buf));
-> memset(buf,0,255);
believefym
2007-05-07
打赏
举报
回复
char *buf = new char[255];
这块内存内容随机的,strlen(buf)是直到遇到0,所以很有可能会溢出,也就是超过255,delete的时候就出错了
believefym
2007-05-07
打赏
举报
回复
char *buf = new char[255];
memset(buf,0,255);
java初始化该
字符串
值_Java
中
字符串
定义,初始化,赋值为null的区别
1、概述:
字符串
定义 只定义不
分配
内存空间,不做任何操作;
字符串
初始化 两种方式直接等号赋值,用
new
初始化,直接等号赋值放入内存池,其它变量也可以引用;
new
初始化
分配
内存空间,不可引用;
字符串
赋值为null 初始化了,并且有了引用,但是没有指向任何内存空间;2、详解:String s;和String s=null;和String s="a";有什么区别?第一个只是定义了一个String类型变量...
JVM面试精讲:内存模型、垃圾
回收
算法、类加载机制与GC调优场景
JVM(Java虚拟机)是Java程序的运行环境,主要组成部分包括类加载器、运行时数据区、执行引擎和本地库接口。运行时数据区
包含
堆、方法区、栈、本地方法栈和程序计数器。JVM采用分代垃圾
回收
机制,包括新生代和老年代,使用标记清除、复制、标记整理等算法进行内存管理。垃圾
回收
器有串行、并行、CMS和G1等类型。JVM调优涉及堆大小、垃圾
回收
器选择等参数设置,可通过jmap、jstack等工具监控和排查内存泄漏、CPU飙高等问题。双亲委派机制确保类加载的安全性和唯一性。
C++ 工程师面试体验
北京掌上飞鱼,做游戏,里面很多工大学长,学长对我挺照顾的,还给我规划了职业。。工资方面不比百度差。。 主要面的是C++~~
解析String类和StringBuilder
介绍一下String类 String类shi
c++面试总结1
北京掌上飞鱼,做游戏,里面很多工大学长,学长对我挺照顾的,还给我规划了职业。。工资方面不比百度差。。 最好笑的,他们公司就在百度对面。。 虽然
最后
还是拒了人家,但是还是很喜欢这公司的。。 顺便给他们做个广告吧。。 主要面的是C++,过后总结下吧~~有些答案结合了网上的“标准答案”给出的。。嘻嘻,不是抄袭,是借鉴哦~~ 1.谈谈你对C++内存
分配
的理解
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章