2.16.10. alloca()

alloca() 函数在一个函数中分配本地存储。 它返回一个指向内存 size 个字节的指针;如果没有足够的可用内存,则返回 NULL。 缺省实现返回一个 8 字节对齐的内存块。

绝不能将从 alloca() 返回的内存传递给 free()。 相反,当调用 alloca() 的函数返回时,将会自动释放内存。

不能通过函数指针调用 alloca()。 在相同函数中使用 alloca()setjmp() 时必须小心,因为 longjmp() 调用将释放 alloca()setjmp()longjmp() 调用之间分配的内存。

此函数是很多 C 库的通用非标准扩展。

语法

void* alloca(size_t size);

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AC
Non-Confidential