40得票14回答
malloc()函数是否分配连续的内存块?

我有一段代码,是由一个非常老派的程序员编写的 :-) 。它的大致内容如下:typedef struct ts_request { ts_request_buffer_header_def header; char package[1]...

40得票1回答
malloced array 与 变长数组的区别

在开始时大小未知的数组有两种分配内存的方式。最常见的方法是使用 malloc,如下所示: int * array; ... // when we know the size array = malloc(size*sizeof(int)); 但在C99中,我们知道数组大小后定义数组也是有效的...

39得票3回答
如何在C语言函数中使用realloc

基于我在这里学到的内容: 在C语言中通过函数操作动态数组. void test(int data[]) { data[0] = 1; } int main(void) { int *data = malloc(4 * sizeof *data); ...

39得票2回答
malloc()和malloc_consolidate()中的段错误问题

我的应用程序有时候会崩溃,并且我在gdb中查看回溯信息时发现主要是在malloc()和malloc_consolidate()中出现。 我已经确认机器有足够的可用内存,甚至没有开始交换。 我检查了数据段和最大内存大小的ulimit,都设置为“无限制”。 我还在valgrind下运行了应用程序...

38得票8回答
C/C++的多线程内存分配器

我目前拥有一个高度多线程的服务器应用程序,并正在寻找一种好的多线程内存分配器。 到目前为止,我在以下几种之间犹豫: Sun's umem Google's tcmalloc Intel's threading building blocks allocator Emery Berger'...

38得票3回答
glibc中已弃用的__malloc_hook功能的替代方法

我正在为C语言编写一个内存分析器,为此通过malloc_hooks拦截对malloc,realloc和free函数的调用。不幸的是,由于它们在多线程环境中表现不佳,这些函数已被弃用。我找不到一份描述替代最佳实践解决方案以实现同样功能的文档,能否有人为我解惑? 我读到过一个简单的#define...

38得票1回答
包含malloc声明的头文件名是什么?答案:stdlib.h

在C和C++中,声明malloc()函数的头文件名是什么?

37得票7回答
在C语言中为结构体分配内存

我被指派创建一个动态分配内存给结构体的程序。通常我们会使用x=malloc(sizeof(int)*y); 然而,我应该使用什么来作为结构体变量? 我认为这是不可能的。struct st x = malloc(sizeof(struct)); 有人能帮帮我吗? 谢谢!

37得票11回答
malloc和放置new与new的区别

我最近几天一直在研究这个问题,到目前为止,除了教条主义的争论或者传统的说辞(比如“这是C++的方式!”)之外,我还没有找到什么有说服力的理由。 如果我要创建一个对象数组,除了方便之外,还有什么其他令人信服的理由可以使用: #define MY_ARRAY_SIZE 10 // ... ...

37得票5回答
在malloc中,为什么要使用brk?为什么不直接使用mmap?

典型的malloc实现使用brk/sbrk作为从操作系统申请内存的主要手段。然而,它们还使用mmap来获取大块内存分配。使用brk而不是mmap是否真的有好处,还是只是传统惯例?全部使用mmap是否同样有效呢? (注意:我在这里交替使用sbrk和brk,因为它们是相同的Linux系统调用接口...