一台合理的电脑应该可以让你透明地访问所有的有效内存。如果, 你很不幸, 你可能需要重新考虑程序使用内存的方式, 或者用各种针对系统的技巧。 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]。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。