47得票3回答
为什么内存分成栈和堆?

可能重复: 栈和堆是什么,它们在哪里? 我有几个关于栈和堆的问题。 基本要知道的是,栈比堆快,但是容量有限(如果我说错了,请纠正我)。 然而,我一直想知道栈和堆究竟是如何工作的。RAM只是一块内存,它没有被划分为“栈”和“堆”(或者说它是吗?)。如果是这样的话,为什么我们首先要将内...

47得票15回答
一个C++类能否确定它是在堆上还是栈上?

我有class Foo { .... } 有没有一种方法让Foo能够分离出:function blah() { Foo foo; // on the stack } 并且function blah() { Foo foo* = new Foo(); // on the heap } 我...

46得票3回答
所有的静态成员都存储在哪里?

我正在尝试学习C#如何管理内存。我卡在静态元素上,我阅读了许多关于这个主题的博客和文章,但是我找不到一个令人满意的答案。 让我们定义一个代码块来帮助找到答案。class myClass { static string myStr = "String Data"; static...

46得票10回答
如何关闭容错堆?

我最近在启动我的应用程序时,在Visual Studio 2005输出窗口中看到了这行信息: FTH: (7156): *** 应用于当前进程的容错堆(shim)。通常是由于之前出现了崩溃。*** 我已经尝试按照这里的说明关闭容错堆: http://msdn.microsoft.com/en...

45得票9回答
如何优化Gradle构建性能,以减少构建时间和RAM使用?

我目前正在将我的多模块Web应用从Ant迁移到Gradle,目前看来当前版本的Gradle(M9)可能已经到达其极限。但也许(希望)只是我不太理解Gradle的概念或不知道“魔法性能提升开关”的问题。我很乐意听取有关如何优化构建性能的任何提示。 问题:在显示第一个compileJava之前要...

45得票6回答
如何释放链表中的节点?

我该如何释放在另一个函数中分配的节点?struct node { int data; struct node* next; }; struct node* buildList() { struct node* head = NULL; struct node*...

45得票9回答
Visual Studio - 如何找到堆栈破坏错误的源头

我想知道在Visual Studio中,是否有一种好的方法可以找到导致堆栈损坏错误的源代码,只给出写入“外部”的内存地址; 专用(0008)自由列表元素26F7F670的大小不正确(已死亡) (试图记录如何查找内存错误的笔记)

43得票6回答
什么是连续内存块?

就像标题所说,什么是连续的内存块?

43得票4回答
具体来说,fork()在Linux中如何处理由malloc()动态分配的内存?

我有一个有父进程和子进程的程序。在fork()之前,父进程调用了malloc()并用一些数据填充了一个数组。在fork()之后,子进程需要这些数据。我知道可以使用管道,但是以下代码似乎也能工作:#include <stdio.h> #include <stdlib.h>...

43得票2回答
无效的堆地址和致命信号11

我的应用程序偶尔会崩溃,日志显示: @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 有时候code=2,但总是出现Fatal signal 11和i...