free相关内容

为什么free()不能真正释放内存?

我正在做一些分配和释放内存的测试.这是我正在使用的代码: #include #include #define WAVE_SIZE 100000000 int main(int argc,char* argv[]){ int i; int **p; printf("%d allocs...\n",WAVE_SIZE); ..
发布时间:2020-05-05 12:28:45 其他开发

malloc实现是否将释放的内存返回给系统?

我有一个长期使用的应用程序,它经常进行内存分配-释放.任何malloc实现都会将释放的内存返回给系统吗? 在这方面, 的行为是什么 ptmalloc 1、2(默认为glibc)或3 dlmalloc tcmalloc(谷歌线程malloc) solaris 10-11默认的malloc和mtmalloc FreeBSD 8默认malloc(jemalloc) Ho积malloc ..
发布时间:2020-05-05 12:28:10 其他开发

C链表valgrind读取的大小无效

我的链表和valgrind输出有问题. 没有更多的理由,这是我的链接列表: typedef struct Map map; struct Map { void *address; double free_time; map* next; }*map_list; 使用虚拟头节点创建列表.如您所见,该结构包含一个地址和一个空闲时间,我试图将它们关联起来. 在f ..
发布时间:2020-04-30 12:58:21 其他开发

了解glibc malloc修剪

我当前正在处理的某些程序消耗的内存比我想象的要多得多.因此,我试图了解glibc malloc修剪的工作原理.我编写了以下测试: #include #include #define NUM_CHUNKS 1000000 #define CHUNCK_SIZE 100 int main() { // disable fast bins ..
发布时间:2020-04-23 11:22:53 服务器开发

如何释放和垃圾收集WebGL上下文?

我正在为网络和移动开发WebGL应用程序。我经常使用硬刷新来测试我的WebGL实现的结果。视图尝试后,我收到错误: 错误:WebGL:超过此主体的16个实时WebGL上下文,失去最少最近用了一个。 这不会出现在新启动的浏览器上,而是多次刷新网站后。我猜想WebGL上下文没有完成,发布,销毁,清理,正确释放。 我该怎么做? Khronos Group在这 ..
发布时间:2019-05-24 21:24:16 前端开发

在C中打印指针地址[两个问题]

我知道我的问题很简单,但谷歌他们并没有给我任何有用的结果......他们可能太简单了! 没有。 1 char * createStr(){ char * str1 = malloc(10 * sizeof(char)); printf(“内存中的str1地址:%p \ n”,& str1); 返回str1; } int main(void){ char * str ..
发布时间:2018-08-06 19:45:12 其他开发

是免费的()清零内存?

直到今天,我仍然相信在内存空间调用 free()会释放它进行进一步分配,而无需进行任何其他修改。尤其是,考虑这个SO问题这明确指出 free()不会将内存清零。然而,让我们考虑这段代码(test.c): #include #include int main() { int *指针; $ b $ if(NULL ==(pointer ..
发布时间:2018-04-20 16:02:41 其他开发

在Magento中跳过Checkout可下载的产品

我正在使用Magento来构建电子书网站。为了发布,我们计划有一些免费的可下载的书籍。我们希望可以使用正常的Magento“目录”功能来添加类别与下面的产品。然而,由于这些是免费的可下载的产品,所以在尝试下载时,通过结帐来传送用户并不真实。 有没有人知道一种方法创建一个免费的可下载的产品,完全绕过结帐?我注意到可下载的产品有一个“免费样品”选项,但是如果我可以在我添加付费产品时,我可以使用这 ..
发布时间:2017-07-13 09:09:16 开发方法

为什么PHP Doctine的免费()不起作用?

这是一个是任何你的教义用户在那里。我有一个PHP CLI守护进程,每n秒钟检查一个表,以查找尚未处理的条目。它基本上是一个FIFO。无论如何,我总是超过分配给PHP的内存,因为Doctrine不释放它的资源。为了解决这个问题,它为查询对象提供免费的。我似乎无法使之工作。以下是代码: 22打印“您正在使用”。 (memory_get_usage()/ 1024)。 “\\\ ”; 23 ..
发布时间:2017-06-12 19:57:06 PHP

Destructor类在TObject和NIL Delphi中

我想知道为什么在我调用 Free 方法之后,对象不是 nil 。 我的意思是下一个类: 类型Ta =类(TObject) public i:整数; 析构函数覆盖 结束 析构函数Ta.Destroy; 开始 继承; 结束 程序Form1.Button1; var a:Ta; begin a:= Ta.Create; a.Free; 如果a = ni ..
发布时间:2017-04-24 02:02:18 Delphi

cudaFree不释放内存

下面的代码计算两个向量a和b的点积。正确的结果是8192.当我第一次运行它的结果是正确的。然后当我第二次运行它的结果是以前的结果+ 8192等: 第一次迭代:result = 8192 第二次迭代:结果= 8192 + 8192 第三次迭代:结果= 8192 + 8192 等等。 通过在屏幕上打印并检查设备变量dev_c不被释放。更多的写入它会导致像一个和,结果beeing ..
发布时间:2017-03-04 16:25:58 其它硬件开发

在Windows 7上编译Fortran .dll(免费)?

我的老板只是要求我将老的老Fortran代码集成到我正在开发的项目(Java)中。代码是在90年代写的,所以我想它仍然会编译,所以,而不是重写它,我希望我可以从一个.dll调用函数。我已经调用了一些C .dlls,所以我想我已经覆盖了这一部分。 我一直在做一些阅读,大多数文章关于将英特尔Visual Fortran编译器集成到Microsoft Visual Studio中。我们有一个Vis ..
发布时间:2016-12-22 22:07:51 其他开发

如何自由接口实现类?

我有一个小问题。因为标题说我想发布一个类实现了一个接口的对象,但是我收到一个错误“无效指针操作”。 接口: 接口 类型 //接口定义 IMessageEvents = Interface(IInterface) ['{BD27EFC6-CC9A-437A-A8B8-16F722518836}'] 过程messageReceived(messageData:String) ..
发布时间:2016-11-23 15:01:03 其他开发

使用placement new,malloc和free

基本上,我有一个内存块分配使用malloc,我想开始放置对象使用placement new。我知道这些对象的析构函数必须在我删除它们时被显式调用,但我想确保我完全理解这一点,并且我正在开发它。我几乎肯定会废除这种方法,并以更直接的方式去处理事情,但我想我只是为了理解的缘故。 我有包含以下私有成员变量的类WordIndex: struct Word { std :: string ..
发布时间:2016-11-02 02:54:59 C/C++开发

在处理完整的字符串之前自由/删除strtok_r指针?

当尝试删除/自由字符ptr而不完全由 strtok_r 处理时,它给我堆栈跟踪错误。 我知道不能以常规方式释放/删除 strtok_r char ptr,而不必通过 strtok_r 完成整个字符串分隔过程。 code> func。 任何人都可以告诉我如何释放一个char ptr,当它的过程由 strtok_r ? char * data = new char [temp-> ..
发布时间:2016-10-30 15:10:48 C/C++开发

堆内存损坏

我有一个类如下 struct CliHandler { CliHandler(int argc,char ** argv) ; 〜CliHandler(); int doWork(); int argc_; char ** argv_; private: CliHandler(const CliHandler&){} CliHandler& operato ..
发布时间:2016-10-27 02:53:04 C/C++开发

确定指针是否有效

我的观察是,如果 free(ptr)被调用,其中 ptr 不是有效的指针系统分配的内存,发生访问冲突。让我们说,我这样调用 free : LPVOID ptr = LPVOID)0x12345678; free(ptr); 这绝对会导致访问冲突。是否有一种方法来测试 ptr 指向的内存位置是否是有效的系统分配内存? 在我看来,Windows操作系统内核的内存 ..
发布时间:2016-10-23 22:20:36 C/C++开发

将动态分配的内存返回到OS,而不终止程序

我正在使用一个程序,我使用大但有限的内存量。内存被分配并在不同线程的运行时释放。但是,我注意到程序的内存使用不会保持在指定的界限内。它会随着时间的流逝而增加。我写了下面的示例程序来检查内存是否正在释放回操作系统。一半的分配的内存被释放以检查内存使用是否下降。 int main() { char * p [COUNT]; for(int i = 0; i { p [i] = ..
发布时间:2016-10-20 23:12:24 服务器开发