【发布时间】:2013-09-09 11:05:46
【问题描述】:
我需要声明一个大小为 LONG_MAX 的数组(2147483647,在 c 库 <limits.h> 中),我真的需要这个来解决问题。但是代码给了我和错误:如果我写long int v[LONG_MAX];,编译器会给出size of array 'v' is too large。
我该如何解决这个问题?
【问题讨论】:
-
您正在尝试分配 2GB x
sizeof(whatever)。你认为这将如何运作?我可以向您保证,您不需要那么多空间来解决您的问题。 -
因为会导致StackOverflow。
-
它应该是某种地图吗?
-
对于 32 位构建,假设 sizeof(long int) == 4,这将是 8GB 的数据。这甚至不适合您的进程的地址空间。 (对于 8 字节长的 64 位,这简直是令人难以置信的大。)
标签: c arrays limits variable-declaration