问题标签 [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 程序,我使用 calloc() 函数为一个结构分配一些内存,该结构中也有一个分配了一些内存的结构。
如果我使用 free() 函数从父结构中释放内存,它是否也会从子结构中释放内存?
还是我应该先从子结构中释放内存?
c - 如何正确地释放()一个malloc()结构?
我有一个结构 malloc()'d,在使用它们之后,我想 free() 它,但我的程序在这里冻结了。谁能告诉我,我做错了什么?
这是我的代码:
提前致谢!
坎皮
编辑:
我怎样才能正确地为文件名和大小分配内存?
编辑2:
对不起,但我很着急,我没有告诉你你需要的所有信息。让我现在做 :) 基本上,我想创建一个应用程序,它获取两个给定驱动器/文件夹的文件列表,然后比较它们。我认为(并且仍然这样做),最简单的方法是,当我将文件名及其大小存储在上述结构中时。所以我必须为文件名和大小动态分配内存(我认为这是他们所说的),也必须为结构分配内存。
c++ - 记忆问题,新的和免费的等。(C++)
我有几个关于 C++ 中的内存处理的问题。
Mystruct *s = new Mystruct
和有什么不同Mystruct s
?记忆中发生了什么?看这段代码:
/li>
什么时候MyStruct tmp
免费?为什么最后没有MyStruct tmp
自动释放create()
?
谢谢!
free - malloc 实现会将释放的内存返回给系统吗?
我有一个长期存在的应用程序,经常进行内存分配释放。任何malloc
实现都会将释放的内存返回给系统吗?
在这方面,以下行为是什么:
- ptmalloc 1、2(glibc 默认)或 3
- dlmalloc
- tcmalloc(谷歌线程 malloc)
- solaris 10-11 默认 malloc 和 mtmalloc
- FreeBSD 8 默认 malloc (jemalloc)
- 囤积malloc?
更新
如果我有一个应用程序的内存消耗在白天和夜间(例如)可能非常不同,我可以强制任何一个malloc
将释放的内存返回给系统吗?
如果没有这样的返回,释放的内存将被多次换出,但这样的内存只包含垃圾。
c - 无法释放内存
我无法真正理解为什么免费进程会返回错误。我在 C 中得到了这个代码:
我分配的板结构如下所示:
问题是我需要先释放板内的 square_type 吗?如果是这样,我该如何释放它?
c - 我们可以使用之前释放的指针吗?
我有一个关于 C 中的 free() 的问题。
假设我有一个指向某个结构的指针(比如 node *ptr).. 在释放它之后我可以将它初始化为 NULL 并使用 malloc() 或 realloc() 使其指向某个新位置吗?
例如:
这是有效的,还是会产生问题。我使用 realloc 代替 malloc 的原因是因为我所有的 realloc() 调用都在一个循环中(所以在第二个参数中它实际上是 n*sizeof(node) 而不是 sizeof(node) ,其中 n 不断增加......并且这个结果数组中的最后一个位置是用新数据写入的)ptr指向的内存不断增加直到循环结束,此时我不需要ptr指向的内存中的数据,所以我认为它最好释放它。现在,所有这些都嵌套在一个更大的(外部)循环中。
非常感谢你的帮助
c - 用一个命令释放所有 malloc() 创建的指针?
是否有一种方法可以释放您使用malloc
s 创建的所有指针所占用的内存?或者这只能通过free
单独设置每个指针来手动完成?
c - free() 没有正确释放内存?
我正在尝试释放分配给 的内存malloc
,但free
根据 Eclipse 的调试器,该命令似乎无法正常工作。这怎么可能?
下面是我的调试器在它被释放后的屏幕截图,seCurrent->student->year
显然不是这样。year
是使用分配的malloc
。
c - free() 后出现分段错误,常见的原因是什么?
free
在ing 某个指针后出现分段错误:
我可以在没有任何错误或警告的情况下获得它的值:
但是,正如我所说,当我尝试释放它时程序崩溃了。free
导致分段错误的命令的最常见原因是什么?
c++ - 当试图释放堆管理器分配的内存时会发生什么,它分配的比要求的多?
这个问题是在一次采访中问我的。
假设 char *p=malloc(n) 分配了多于 n 的内存,例如分配了 N 个字节的内存,并且 free(p) 用于释放分配给 p 的内存。
堆管理器可以执行这种错误的分配吗?现在会发生什么,将释放 n 个字节还是释放 N 个字节?
有什么方法可以找到释放了多少内存?
编辑
有什么方法可以找到释放了多少内存?
有总比没有好,
mallinfo() 可以揭示“Fred Larson”所指出的一些亮点