memory-leaks 相关问题

当程序无法释放已分配但不再使用且无法恢复的内存时,会发生内存泄漏。

返回指针后是否应该使用 free()

变量z指向已被free()释放的地址 如果我再次使用malloc它可以使用已释放的内存吗 我觉得这不对 char *conc(char *a, char *b){ ch...

回答 1 投票 0

将 Memory Sanitizer 和 Leak Sanitizer 安装到 clang 编译器中

我已经从 Home-brew 下载了 LLVM,但在检查 C 中的内存问题时仍然无法使用 -fsanitize=memory。我收到以下错误: clang: error: unsupported option '-fsan...

回答 2 投票 0

没有struct 1和struct 2数组,struct 2内部有一个int数组

typedef 结构partition_struct { int* 元素; int 最后; //最后一个元素索引 int 暗淡; //n个分配的int } 分割; typedef 结构partitions_struct { 分区*分区;...

回答 1 投票 0

当您使用 .html() 删除元素时,jQuery 中的事件侦听器是否会自动删除?

在 jQuery 中,如果我们使用 .remove() 来删除某个元素,那么与该元素关联的所有绑定事件和 jQuery 数据都会被删除。 但是如果我们用 .html()“删除”元素会发生什么......

回答 4 投票 0

Dart/Flutter 有弱引用的概念吗?

我正处于学习 Dart 和 Flutter 的早期阶段。我正在研究如何实现一个事件总线,它工作得很好,但我注意到小部件(和/或它们的相关状态)具有很强的

回答 4 投票 0

canvas npm 包可能存在内存泄漏吗?

const { createCanvas } = require('canvas'); 函数渲染图像(){ 常量 bgCanvas = createCanvas(800, 600); 让 bgCtx = bgCanvas.getContext('2d'); bgCtx=空; 全局GC(); } 控制台.l...

回答 1 投票 0

释放未分配的内存(c)

在 get_next_line 函数中,我使用指针 temp 来释放被 strchr 修改后分配给剩余的内存。 如果我删除 temp,函数就会泄漏,但就像现在一样,我是

回答 1 投票 0

为什么这是潜在的内存泄漏?

typedef 结构 _MY_STRUCTURE_ { int 参数1; int 参数2; int 参数3; int 参数4; int 参数5; int 参数6; } MY_STRUCTURE, *pMY_STRUCTURE; 类测试{ 民众: 无效

回答 1 投票 0

关于 .Net Entity Framework 版本 8(C# 控制台应用程序 .Net8.02),GC 未修复内存泄漏

对于我编写的大多数内容,我通常不关心内存使用情况,但是,我有一个使用 EF8 在 .Net8.02 中编写的控制台应用程序,每次调用 EF 事务时都会泄漏 2MB。我已经尝试过每一个

回答 1 投票 0

get_next_line函数内存泄漏(三)

我使用的测试仪显示到处都有泄漏,例如ft_strdup分配的内存。 当我沿着职能链向上走时,我的印象是,在任何

回答 1 投票 0

指向 std::vector 的指针的内存问题

我正在做一个关于SPFA的算法问题,我使用std::vector来存储图的加权边,其中我有一个指向它的指针数组: 结构体 e{ int 至,p,v; e(int_to_...

回答 1 投票 0

如何防止共享指针的unordered_map泄漏?

我正在构建一个控制台应用程序,其中仅使用智能指针。我选择只使用智能指针来了解何时使用哪个智能指针。在此应用程序中,我正在尝试...

回答 1 投票 0

释放从c++中的函数返回的已分配内存

我有一个问题找不到答案。 如果我有一个这样的函数: char* f1(char ch, int len) { char* s1=新的char[len+1); for(int i; i 我有一个问题找不到答案。 如果我有这样的功能: char* f1(char ch, int len) { char* s1=new char[len+1); for(int i; i<len; i++) s1[i]=ch; s1[len]=0; } 我这样称呼它: char* str; str=f1("A", 10); std:cout << "Something " << str << std::endl; delete[] str; 一切都好,但如果我想像这样使用它更短: std:cout << "Something " << f1("A", 10) << std::endl; 我最终会分配到无法释放的内存。 请记住,内存泄漏不好,应该避免 - 有没有办法以正确的方式做到这一点? 尝试在互联网上搜索但没有结果。 考虑创建从函数分配的指针列表,并稍后在某个地方释放它们,但这不是最好/安全的方法,因为它很容易混乱。 您可以像这样使用 std::unique_ptr: #include <memory> #include <iostream> typedef std::unique_ptr<char[]> MyPtr; MyPtr f1(char ch, int len) { MyPtr s1(new char[len+1]); for(int i=0; i<len; i++) s1[i]=ch; s1[len]=0; return s1; } int main() { std::cout << "Something " << f1('A', 10).get() << std::endl; } 背景:从 f1 返回的对象在语句结束时被销毁——也就是说,在执行该行之后,当到达 ; 时。 当然,归根结底,您应该只使用 std::string——毕竟,您使用的是 C++... #include <iostream> #include <string> int main() { std::cout << "Something " << std::string(10, 'A') << std::endl; } 您的代码中有几个问题: f1 应该返回 char* 但不包含 return 语句(如 return s1;)。 您用 f1 呼叫 f1("A", 10)。但第一个参数应该是 char 而“A”不是。应该是f1('A', 10)。 在 C++ 中,不建议使用原始 C 数组。它的问题之一是您遇到的需要手动内存管理。最好使用标准库类,如 std::vector(用于通用动态数组),或者在这种以空结尾的字符数组的情况下 - 使用 std::string。 std::string已经有一个构造函数,它接受长度和字符并创建一个字符串,就像你的f1尝试做的那样,所以你可以简单地使用: std::cout << "Something " << std::string(10, 'A') << std::endl; 输出: Something AAAAAAAAAA 现场演示

回答 2 投票 0

释放从c++中的函数返回的已分配内存

我有一个问题找不到答案。 如果我有一个这样的函数: char* f1(char ch, int len) { char* s1=新的char[len+1); for(int i; i 我有一个问题找不到答案。 如果我有这样的功能: char* f1(char ch, int len) { char* s1=new char[len+1); for(int i; i<len; i++) s1[i]=ch; s1[len]=0; } 我这样称呼它: char* str; str=f1("A", 10); std:cout << "Something " << str << std::endl; delete[] str; 一切都好,但如果我想像这样使用它更短: std:cout << "Something " << f1("A", 10) << std::endl; 我最终会分配到无法释放的内存。 请记住,内存泄漏不好,应该避免 - 有没有办法以正确的方式做到这一点? 尝试在互联网上搜索但没有结果。 考虑创建从函数分配的指针列表,并稍后在某个地方释放它们,但这不是最好/安全的方法,因为它很容易混乱。 您可以像这样使用 std::unique_ptr: #include <memory> #include <iostream> typedef std::unique_ptr<char[]> MyPtr; MyPtr f1(char ch, int len) { MyPtr s1(new char[len+1]); for(int i=0; i<len; i++) s1[i]=ch; s1[len]=0; return s1; } int main() { std::cout << "Something " << f1('A', 10).get() << std::endl; } 当然,归根结底,您应该只使用 std::string——毕竟,您使用的是 C++...

回答 1 投票 0

哪些 GDI 对象可能会被泄漏,但不会被枚举为已知的 GDI 对象类型?

我有一个进程不断循环运行某些东西。它打开表单,处理其中的内容,然后关闭它们。一段时间后,该过程开始出现一些错误,最终

回答 1 投票 0

解析 ESP 8266 的 RGB HexCode 字符串

我正在开发一个项目,其中我的 ESP8266 从互联网接收颜色十六进制代码,然后我将该颜色用于 LED 灯带。 我收到的示例文本是“$3#FF00FF” 然而我的代码

回答 1 投票 0

co_reutrn之后协程帧是否自动销毁并释放(即释放分配的帧?)?

我知道如果达到co_return(隐式或显式) co_await Promise.final_suspend() 被调用。 在final_suspend()中,我们可以明确地调用handle.destroy(),据我所知,它会破坏...

回答 1 投票 0

Spring 集成泄漏

我有一个 Spring 集成应用程序。它基本上有一个带有 requestChannel 的网关,以及一个从通道消费的 @ServiceActivator。 @ServiceActivator 使用轮询器来获取新的

回答 1 投票 0

什么是类加载器泄漏?

我在谷歌中看到了如何解决类加载器泄漏的方法,但没有任何地方解释什么是类加载器泄漏? 假设我加载一个对象 Person person = new Person() 那么 Person 类将被加载...

回答 3 投票 0

如何修复 IntersectionObserver 导致我的 OpenLayers Web 应用程序内存泄漏?

所以我正在开发一个名为 MSC AniMet 的 Web 应用程序。该应用程序使用 Vue2 和 Vuetify2 进行编码,它本质上是一个大型 OpenLayers 地图,其中添加了一堆内容和功能...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.