社区
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; //这里回收就会出问题
请问这样的问题如何解决
...全文
216
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的区别
本文详细解释了Java
中
字符串
的不同初始化方式及其背后的工作原理。包括
字符串
定义、初始化的区别,以及使用双引号和
new
关键字创建
字符串
时的行为差异。通过示例说明了
字符串
池的概念及其在内存
中
的位置。
JVM面试精讲:内存模型、垃圾
回收
算法、类加载机制与GC调优场景
本文系统讲解JVM核心组成(类加载器、运行时数据区)、垃圾
回收
机制(可达性分析、分代收集、G1算法)、引用类型区别及JVM调优实践。涵盖内存模型(堆、栈、元空间)、双亲委派机制、GC触发条件与
回收
器选型,并介绍jstat/jmap/VisualVM等调优工具及内存泄漏、CPU飙高排查方法。
C++ 工程师面试体验
本文深入探讨C++游戏开发
中
的内存管理,包括栈与堆的区别、
new
/delete与malloc/free的对比,以及多态机制的实现与应用。通过经典代码示例,解释了内存
分配
、内存效率、存储内容、存取效率等内容,同时详细阐述了虚函数与多态性的关系,提供了一段完整的多态代码实例。
最后
,文章还介绍了引用的概念及其在函数参数、返回类型
中
的应用。
解析String类和StringBuilder
本文深入解析 Java
中
String 类的特点与应用场景,包括其不可变性、内存
分配
机制,并对比 StringBuilder 在
字符串
拼接时的效率优势。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章