内存分配不成功导致内存泄漏的问题
来源:互联网 发布:秀萝捏脸数据 编辑:程序博客网 时间:2024/06/06 04:26
内存泄漏是在写程序中容易发生的问题,所以解决内存泄漏问题至关重要,在这里我推荐一个内存泄漏的自动化检测软件:visual leak detector,非常好用的一个软件
#include <iostream>
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
int main()
{
char *str = NULL;
GetMemory(str, 100);
strcpy(str, "hello");
return 0;
}
上述代码 p申请了新的内存,但是p只是str的一个副本(编译器为函数参数制作临时副本),p指向的内存地址改变了,而str却没有改变。GetMemory没有返回值, 申请的内存得不到释放,最终造成内存泄漏。
解决方法1:采用指向指针的指针,传str的地址给函数
#include <iostream>
void GetMemory(char **p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
}
int main()
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
return 0;
}
方法2:加返回值#include <iostream>
char *GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
return p;
}
int main()
{
char *str = NULL;
str = GetMemory(str, 100);
strcpy(str, "hello");
return 0;
}
- 内存分配不成功导致内存泄漏的问题
- 常见的导致Android内存泄漏问题
- 导致内存泄漏的原因
- ThreadLocal 导致的内存泄漏
- InputMethodManager导致的内存泄漏
- 再谈android内存泄漏—常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 关于Android VideoView导致的内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 常见的八种导致 APP 内存泄漏的问题
- 闭包-简洁版(Swift)
- 打包Tomcat中的web程序的指令
- Extjs/Ajax中的success和failure 何时调用?
- html5从入门到精通-新增属性
- Apple Watch UI设计基础
- 内存分配不成功导致内存泄漏的问题
- php可变参数实现
- OutMan——Objective-C内存管理
- 多线程和MsgWaitForMultipleObjects
- Java程序性能优化
- C++如何加载PNG透明图片作为菜单项的图标
- Python中self的含义
- Flex总结
- Android核心分析(17) ------电话系统之rilD