memory-leaks 相关问题

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

关于 .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

如何在 Android TV 上使用 Leak Canary

我有一个 Android TV 应用程序,它是 Lollipop 之前的版本,我需要检查是否有泄漏。我已将 Leak Canary 添加到应用程序中,并且能够运行该应用程序并在

回答 1 投票 0

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

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

回答 1 投票 0

为什么 Windows 上的向量删除会调用标量删除析构函数?

我有一个在 Windows 上泄露的代码。它在许多 UNIX 平台上运行良好,并且泄漏仅发生在 Windows 上。 该二进制文件由 exe、1 个 dll 和 2 个静态库组成。 exe 链接到 dll...

回答 5 投票 0

当我的方法运行完毕时,垃圾收集器会释放这个列表吗

假设我有类似的东西: 公开课项目 { 公共字符串代码; 公共列表代码=新列表(); } 私有无效SomeMethod() { 列表 项目...

回答 5 投票 0

使用shared_ptr时内存泄漏

我一直在努力解决一个涉及城市各地区用水减少的问题。该程序需要输入地区编号以及餐厅所在地区的编号...

回答 1 投票 0

尽管在 useEffect 中取消订阅,但从 Android 向 JavaScript 发送事件导致内存泄漏

我遵循了有关如何从本机端向react-native发出事件的文档。 我有一个 RecyclerViewScrollListener,它是这样定义的。 基本上,我想发送当前项目的...

回答 1 投票 0

使用Google测试框架(不是Windows)进行内存泄漏检测的标准做法是什么

我有大量使用 Google Test 的单元测试。 目前使用 XCode,我注意到一些其他测试框架在每个单元测试结束时检测内存泄漏,我假设有......

回答 2 投票 0

Object Pascal 链表析构函数留下一个块未释放

在Object Pascal中实现这个单链表类的析构函数,为什么最后总是有一个内存块未释放? 我尝试过迭代而不是递归破坏......

回答 1 投票 0

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