42得票11回答
在IT技术中,分配内存时是否最好以2的幂次方为单位?

当我们使用malloc()函数分配内存时,应该给出大小是2的幂次方吗?还是只需要给出我们需要的确切大小? 例如: //char *ptr= malloc( 200 ); char *ptr= malloc( 256 );//instead of 200 we use 256 如果给定的...

41得票5回答
我可以假设调用realloc并使用更小的尺寸会释放剩余空间吗?

让我们来看一下这段非常简短的代码片段:#include <stdlib.h> int main() { char* a = malloc(20000); char* b = realloc(a, 5); free(b); return 0; } ...

41得票2回答
如何在C语言中释放内存?

我正在编写大量1维和2维数组的代码。我遇到了“错误:无法分配区域”的问题,我认为这是因为分配了太多内存。我使用了“malloc”和“free”函数,但我不确定我是否正确地使用它们。也许您知道哪里可以看到C语言中有关内存管理的好例子? 所以...我只是试图让一个算法工作,现在这段代码只是一个函数...

41得票4回答
解释一下《K&R》书中关于malloc的实现方式。

这是《C语言程序设计》一书的摘录,作者是Kernighan和Ritchie。它展示了如何实现一个版本的malloc函数。尽管有详细的注释,但我对其理解仍然困难重重。请问有人可以解释一下吗? typedef long Align; /* for alignment to long bounda...

41得票3回答
灵活数组成员不在结构体末尾错误的原因是什么?

我想知道为什么在调用malloc时我一直收到“error: flexible array member not at end of struct”错误。我有一个带有可变长度数组的结构体,并且我一直收到此错误。 结构体如下:typedef struct { size_t N; doub...

41得票3回答
alloc、malloc和alloca——它们有什么区别?

我认为,在Objective-C中调用[anyObject alloc]时,alloc实际上是实现了C函数malloc并在堆中分配内存,但我找不到任何地方对此进行说明。 同时,在搜索alloc时,我发现了alloca,它将内存分配在栈中。如果我没错的话,alloc在堆中分配内存以创建对象。 ...

41得票10回答
malloc在什么情况下会返回NULL?

这种情况从未发生在我身上,因为我已经编程多年了。 有人能给我举一个非平凡的程序例子吗,在这个程序中malloc实际上不起作用? 我不是在谈论内存耗尽的情况: 我正在寻找一个简单的情况,当您分配一个由用户给定的边界大小的单个内存块(比如一个整数)时,malloc会失败。

41得票5回答
GCC中的aligned malloc()是什么?

在GCC或glibc中是否有标准化的函数可以分配指向对齐内存块的指针? 类似于MSVC中的_align_malloc()吗?

40得票5回答
何时使用malloc来处理char指针

我特别关注何时在char指针上使用malloc。char *ptr; ptr = "something"; ...code... ...code... ptr = "something else"; 对于这么简单的问题,是否需要使用malloc? 如果是,为什么?如果不是,那么什么时候需要使用...

40得票11回答
如何分配内存并通过指针参数将其返回给调用函数?

我有几个不同的函数里面都有一些类似于以下代码:void someFunction (int *data) { data = (int *) malloc (sizeof (data)); } void useData (int *data) { printf ("%p", data)...