问题标签 [free]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ 分配器::deallocate(NULL,1) 允许吗?
两者free(NULL)
都::operator delete(NULL)
允许。分配器概念(例如 std::allocator 是否也允许deallocate(NULL,1)
,或者是否需要自己保护它?
c - 在 C 中,是否有必要在退出时释放指针?
在 C 中,是否有必要在退出时释放指针? 当程序存在时,它是否从仍然指向已分配块的指针中释放内存?
它依赖于操作系统吗?
c++ - g++ 双重免费或腐败...但是如何?
我的代码似乎有问题,想知道你们是否可以帮助我找到问题...我尝试使用 gdb 和 valgrind,后者“更”有用,但我仍然无法修复我的错误。
下面是我的课程代码(这是我的缩小版,但问题的主要本质仍然存在):
/* 矢量.h */
/* 物理状态.h */
/* 物理状态.cpp */
/* 测试.cpp */
对不起,长度。这是 valgrind 的输出:
提前感谢任何可以帮助我的人,这让我发疯了!GD。
PS:我=(*这个);无= 0;
c++ - 新建、删除、malloc 和免费
在一次采访中,有人问我这个问题:
在 C++ 中,
- 如果我们使用分配内存
malloc
并使用delete
释放分配的内存怎么办?- 如果我们使用分配内存
new
并使用释放它free
呢?如果在代码中使用上述的东西,我们会面临哪些问题?
我的回答是没有区别。我这样说对吗?
c - c - 循环中释放子字符串
我正在尝试为 struct ' ' 的每个成员获取一个子字符串,structs
然后将该子字符串分配给temp_struct
. 我遇到的问题是如何在每次迭代时释放子字符串,由于某种原因代码运行,但是valgrind
抛出一个Invalid read of size 1
,我假设我正在读取内存块。
我怎样才能释放子字符串?
谢谢
c - realloc 和 free 导致“双重释放或损坏”
忍受我。我已经 8 年没有用 c 编码了,我完全困惑为什么我的字符串操作不起作用。我正在编写一个永远循环的程序。在循环中,我初始化了两个 char 指针,每个指针都传递给一个将文本添加到 char 指针(数组)的函数。函数完成后,我打印 char 指针并释放两个 char 指针。但是程序在 7 次迭代后终止,并出现以下错误消息
* 检测到 glibc * ./test: 双重释放或损坏 (fasttop): 0x0804a168 ***
c - 释放子字符串而不在c中进行双重释放
昨天我问了一个类似的问题,关于如何free
为sub-string
. 现在我对同一个问题(涉及一组条件)还有一个问题,我如何在不进行双重释放的情况下释放以下子字符串?
c - 这可能是由于堆损坏,这表明 cvector.exe 或其已加载的任何 DLL 中存在错误
我在测试程序中犯了很多错误!!!
调试源:http ://www.cppblog.com/Files/mymsdn/cvector-windows-has-triggered-a-breakpoint-in-cvector.zip
正确的版本:http ://www.cppblog.com/Files/mymsdn/cvector-svn-version-10.zip
我正在尝试编写向量结构的 C 语言版本。
如果我尝试运行(在 Microsoft Visual Studio 2008 中,默认快捷方式是 CTRL+F5)我的代码。它可以作为正确的逻辑执行以输出正确的结果。
但是如果我尝试在调试模式下运行它(在 Microsoft Visual Studio 2008 中,默认快捷键是 F5)。它会导致一个问题:(它来自输出窗口,并且还有一个警报框架来报告它)
HEAP [cvector.exe]:HEAP:释放堆块 393168 在释放后修改为 393190 Windows 已触发 cvector.exe 中的断点。
这可能是由于堆损坏,这表明 cvector.exe 或其已加载的任何 DLL 中存在错误。
这也可能是由于用户在 cvector.exe 具有焦点时按 F12。
输出窗口可能有更多诊断信息。
(来源:cppblog.com)
delphi - 在调用 FreeMem (Delphi 32) 之前检查是否分配了内存
我一直在以某种方式释放对象的地方遇到错误,但我们最终在它们上调用 FreeMem。当然,这会导致错误,因为内存已被释放并引发错误。
我知道 try-catch 块可能会修复它,但这是很多 try-catch 块。使用常规 object.free 避免这种情况的方法是 FreeAndNil(object) 但我找不到 FreeMem 的等价物。在释放之前测试它是否被分配的东西。
在易于阅读、可维护性和稳定性方面,这里最好的解决方案是什么。
c - 我应该在异常终止时释放分配的内存吗?
我的程序(文本模式的网络浏览器)正在动态分配内存。
当然,我会在运行时释放不需要的块。而且我会在正常终止之前释放所有内容 - 这样内存泄漏检查器就不会给我误报(并且在需要重大重构时保持灵活性)。
现在,我不做的是在异常终止之前释放内存。(目前,我的程序在信号和 malloc/reallocs 失败后终止。)
我的问题是:你认为这种不好的风格吗?我应该在异常终止时释放吗?