开发者社区> 问答> 正文

怎样分配大于 64K 的数组或结构?

怎样分配大于 64K 的数组或结构?

展开
收起
游客py5kcp7dd6tu6 2022-03-30 07:42:57 503 0
1 条回答
写回答
取消 提交回答
  • 一台合理的电脑应该可以让你透明地访问所有的有效内存。如果, 你很不幸, 你可能需要重新考虑程序使用内存的方式, 或者用各种针对系统的技巧。 64K 仍然是一块相当大的内存。不管你的电脑有多少内存, 分配这么 一大段连续的内存是个不小的要求。标准 C 不保证一个单独的对象可以 大于 32K, 或者 C99 的 64K。通常, 设计数据结构时 的一个好的思想, 是使它不要求所有的内存都连续。对于动态分配的多维 数组, 你可以使用指针的指针, 在问题 6.13 中有举例说明。 你可以用链接或结构指针数组来代替一个大的结构数组。

    如果你使用的是 PC 兼容机 (基于 8086) 系统, 遇到了 64K 或 640K的限制, 可以考虑使用 huge" (巨大) 内存模型, 或者扩展或延伸内存, 或 malloc 的变体函数 halloc() 和 farmalloc(), 或者用一个 32 比特 的平直" 编译器 (例如 djgpp, 参见问题 18.3), 或某种 DOS 扩充器, 或换一个操作系统。

    参考资料: [ISO, Sec. 5.2.4.1]; [C9X, Sec. 5.2.4.1]。

    2022-03-30 07:43:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
重新定义计算的边界 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载