The maximum size of an array that can be created by the 32-bit Intel® C++ Compilers for Linux* or Mac OS* is 2 GB.
Note: You must have enough memory on the system (both physical memory plus swap space) to create arrays with the requested sizes.
On Linux or Mac OS, typically, shared libraries are loaded at 1 GB, which limits the contiguous address space available to your program. You will get a load time error if your program + static data exceed this.
Intel® C++ Compiler - Array size limit on IA-32
For more complete information about compiler optimizations, see our Optimization Notice.