495得票24回答
为什么使用alloca()不被视为良好的实践?

alloca()函数在栈上分配内存,而不是像malloc()一样在堆上分配内存。 因此,当我从函数返回时,内存就被释放了。 因此,实际上这解决了我释放动态分配内存的问题。 通过malloc()分配内存后释放内存是一个大问题,如果某些情况下没有释放会导致各种内存问题。 尽管具有上述功能,为什么...

45得票4回答
alloca()在内存层面上是如何工作的?

我正在尝试弄清楚 alloca() 在内存级别上是如何工作的。根据Linux man页面: alloca() 函数在调用者的堆栈帧中分配大小为 size 字节的空间。这个临时空间在调用 alloca() 的函数返回给其调用者时自动释放。 这是否意味着 alloca() 会将堆栈指针向前移动...

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

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

36得票12回答
Alloca实现

如何在D、C和C++等编程语言中使用内联x86汇编实现alloca()函数?我想创建一个稍加修改的版本,但首先需要了解标准版本的实现方式。从编译器的反汇编结果中读取并不有帮助,因为它们进行了许多优化,我只需要原始的实现形式。 编辑:我认为困难的部分是我希望这个函数具有常规函数调用语法,即使用...

22得票2回答
Windows 中的头文件 alloca.h

在 Visual C 2010 中我找不到任何类似于 alloca.h 的东西。那么,在 Windows 上如何执行堆栈分配呢?我想使用 alloca 函数,可惜它现在不可用了。

20得票2回答
alloca是否是C++标准的一部分?

alloca是否是C++标准的一部分?

11得票2回答
有没有一个分配器可以使用alloca,同时符合C++ STL规范?

我有两个问题: 1)是否可以实现一个分配器,使用alloca在堆栈上分配内存,并且其他方面符合C++ STL的规范? 如果有代码存在,您可以通过简单地将URL指向我来使我感到高兴。 :-) 如果没有代码,请您勾画一下allocate和deallocate函数的功能? 2)如果上述问题的答...

11得票2回答
“alloca point” 行在 LLVM 代码中的目的是什么?

最近我一直在查看llvm-gcc生成的一些LLVM汇编代码,我注意到一个经常出现的语句,但我不确定它的用途。 例如,以下C程序:int main(void) { void (*f)(void) = (0x21332); f(); } 使用“llvm-gcc -emit-llvm ...

11得票2回答
alloca是否可以完全被替代?

我已经在多个地方读到了 alloca 已经过时,不应该使用,而应该使用可变长度数组。 我的问题是:可变长度数组是否完全可以替代 alloca? 在我的特定情况下,我有这样的代码:typedef struct { int *value; size_t size; } som...

11得票3回答
C语言中的alloca函数

我在复习C语言时遇到了alloca/free函数,它被描述为在类似栈的空间上分配存储空间。这和malloc/free是一样的吗?还是有所不同?谢谢。