汇编语言中的内存地址是一次性静态分配的吗?

Are memory addresses in assembly language statically allocated at once?

我想编写一个 C 程序,分配 20,000 行内存,每行包含 8 个字节,标记范围为 2500 到 24999。该程序实际上模拟了一个简单的汇编语言 IDE。所有 20,000 条内存行可能会或可能不会同时使用。建议我如何为 C 程序中的这些位置分配内存。它应该是静态分配吗? 访问 http://screencast.com/t/69T7u0avH

尝试

unsigned char (*ptrtomem)[8];
unsigned char (*ptr)[8];
/* ... */
    ptrtomem = malloc(20000*8);
    ptr = ptrtomem-2500;
/* use ptr[2500][] to ptr[24999][] */
/* when done */
    free(ptrtomem);

如果您想从堆栈中分配,或者使用 _alloca()(或 alloca(),具体取决于编译器)。