社区
C++ 语言
帖子详情
请问这样的函数使用起来会不会发生内存泄露?
sean1103
2006-06-28 11:23:47
我定义了这样一个字符处理函数,最后需要通过指针返回结果:
char* MyClass::ProcessChar(char * mystring)
{
......
char* temp = new char[256];
......
return temp;
}
因为在函数中有堆申请new,给指针temp,然后又把它返回,没有delete temp。调用后会不会就会发生内存泄露呢?
...全文
285
10
打赏
收藏
请问这样的函数使用起来会不会发生内存泄露?
我定义了这样一个字符处理函数,最后需要通过指针返回结果: char* MyClass::ProcessChar(char * mystring) { ...... char* temp = new char[256]; ...... return temp; } 因为在函数中有堆申请new,给指针temp,然后又把它返回,没有delete temp。调用后会不会就会发生内存泄露呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
云梦谭
2006-06-28
打赏
举报
回复
不一定的。方法里新开辟的内存传出,调用点之后要回收就行了。
crazy_lazy_pig
2006-06-28
打赏
举报
回复
不一定会的, 应该说非常容易发生内存泄漏. 你在调用后, 记得适时的delete就行了.
sharkoasis
2006-06-28
打赏
举报
回复
会的!
oowgsoo
2006-06-28
打赏
举报
回复
内存管理的原则应该是谁申请谁释放,象你的这种实现就违反了这个基本原则,当然如果客户端也遵循你的原则每次都负责释放是不会有内存泄漏的,但是你能保证每个客户端都能这么处理吗?特别是新来的同事,这种做法就是给自己找事:)
cmoring
2006-06-28
打赏
举报
回复
看看C库里面的函数声明就知道了。
char *strcpy( char *strDestination, const char *strSource );
不推荐使用楼主的做法.
一般是用传递进来的指针保存进行操作返回。
DeadWolf
2006-06-28
打赏
举报
回复
要看用你这个函数的认知不知道要释放
这样做确实不好
bird1982
2006-06-28
打赏
举报
回复
不一定会出现问题,如果你是在一个线程里面做这些事情,做完这个线程自己死掉,那么内存自己就会OVER了,但最好推荐不要按照上面的方法去做,Windows下,这么做10有8,9得泄露
meicaikourou
2006-06-28
打赏
举报
回复
这不是一种方法,应该传递进来指针保存返回值。
跨级释放往往导致错误
0黄瓜0
2006-06-28
打赏
举报
回复
通常不应该把new和delete放在不同的域中。使用你设计的函数的人不知道你在函数中申请了内存,自然不会释放返回的堆内存而导致内存泄露
pottichu
2006-06-28
打赏
举报
回复
你调用该函数以后,记得释放内存就不会泄露了。
只能说这是个不好的设计。
Go
函数
中为什么
会
发⽣
内存泄露
本文指出Go语言
函数
内
发生
内存泄露
的常见原因,包括协程管理不当、资源未正确关闭、循环引用等。为避免
内存泄露
,开发者应确保资源正确关闭、避免循环引用等,还可
使用
Go语言的内存分析工具检测和定位问题。
新手学习opencv十:
内存泄露
本文围绕新手学习OpenCV时的
内存泄露
问题展开。介绍了OpenCV中常见需释放或销毁的
函数
接口,如读取摄像头、视频文件等操作。还阐述了
内存泄露
的后果,按
发生
方式将其分为常发性、偶发性、一次性和隐式四类,并提及malloc、new申请的堆内存泄漏情况。
什么是
内存泄露
,如何避免
内存泄露
C++
本文深入解析
内存泄露
的概念及其成因,介绍了两种有效避免
内存泄露
的方法:一是通过内部封装利用C++析构
函数
特性,二是
使用
智能指针进行资源管理。
JavaScript
内存泄露
,闭包
内存泄露
如何解决
本文探讨了JavaScript
内存泄露
的四种常见形式及其解决办法,包括意外的全局变量、被遗忘的计时器或回调
函数
、脱离DOM的引用及闭包造成的
内存泄露
。并通过Chrome开发者工具的实际操作演示了如何发现和定位
内存泄露
。
java程序
会
发生
内存泄露
吗及内存泄漏场景
Java程序虽然有垃圾收集器管理内存,但仍然可能
发生
内存泄露
,主要原因是长生命周期对象持有短生命周期对象的引用。常见的
内存泄露
场景包括未正确管理的集合类和单例模式的
使用
。例如,静态集合或单例持有的外部对象引用可能导致对象无法被回收,占用内存。防止
内存泄露
的关键是及时释放不再
使用
的对象引用。
C++ 语言
65,211
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章