阿洛卡牌手表

来自RAD Studio
跳转到:航行,搜索

转到malloc.h索引


注:此功能仅适用于经典bcc32编译器,而不适用于现代Clang增强型编译器。

标题文件

马洛克。小时

原型

无效 *阿洛卡牌手表(尺寸_t 大小);

说明

分配临时堆栈空间。

alloca在堆栈上分配大小字节;当调用函数退出时,分配的空间会自动释放。

不鼓励使用alloca。尝试-C++程序块中,不应使用alloca函数。如果抛出异常,alloca放在堆栈上的任何值都将被破坏。

返回值

如果有足够的堆栈空间可用,alloca将返回一个指向分配的堆栈区域的指针。否则,返回NULL。

便携性

POSIX公司 ANSI C标准 ANSI C标准++ Win32(Win32) Win64(Win64) macOS操作系统
阿洛卡牌手表 +

例子

#包括<malloc.h>
#包括<stdio.h>
#包括<stdlib.h>

无效 测试(整数 ) {
    烧焦 *新闻堆栈;
    整数 伦恩 = ;
    烧焦 笨蛋[1];
    笨蛋[0] = 0; /*强制良好的堆栈帧*/
    打印(“调用alloca之前的SP(0x%X)=0x%X\n个, 伦恩, _SP(标准普尔));
    新闻堆栈 = (烧焦 *) 阿洛卡牌手表(伦恩);
    打印(“调用alloca后的SP=0x%X\n个, _SP(标准普尔));
    如果 (新闻钉)
        打印(“Alloca(0x%X)返回%p\n个, 伦恩, 新闻堆栈);
    其他的
        打印(“Alloca(0x%X)失败\n个, 伦恩);
}

无效 主要的() {
    测试(256);
    测试(16384);
}