I need to create an array of size 1000000000.
#include<iostream>
#include<cstdlib>
#include<math.h>
#include<cmath>
using namespace std;
unsigned long long int arr[1000000000];
int ZofF(long long int n)
{
for(unsigned long long int i=1;i<=1000000000;i++)
{
}
}
int main()
{
return 0;
}
I get an error such as this:
C:\Users\TARUNM~1\AppData\Local\Temp\cccgeKSu.s Assembler messages: 63 C:\Users\TARUNM~1\AppData\Local\Temp\cccgeKSu.s Error: value of 00000001dcd6504e too large for field of 4 bytes at 000000000000004e 87 C:\Users\TARUNM~1\AppData\Local\Temp\cccgeKSu.s Error: value of 00000001dcd6507e too large for field of 4 bytes at 000000000000007e
There was a solution: How to handle an array with size 1,000,000,000 in C++?
I have tried to divide it into multiple arrays, I didn't actually understand the solution from the above link. Here is the code:
#include<iostream> #include<cstdlib> #include<math.h> #include<cmath> using namespace std; unsigned long int arr[125000000]; unsigned long int ar2[125000000]; unsigned long int ar3[125000000]; unsigned long int ar4[125000000]; unsigned long int ar5[125000000]; unsigned long int ar6[125000000]; unsigned long int ar7[125000000]; unsigned long int ar8[125000000]; int ZofF(long long int n) { for(unsigned long long int i=1;i<=250000000;i++) { } } int main() { return 0; }
But this code gave me the following error.
c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\lib\crt2.o In function
check_managed_app': 357 h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x21): relocation truncated to fit: R_X86_64_PC32 against symbol
mingw_initltsdrot_force'defined in .bss section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-tlssup.o) 358
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x2b): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltsdyn_force'defined in .bss section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-tlssup.o) 359
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x35): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initltssuo_force'defined in .bss section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-tlssup.o) 360
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x3f): relocation truncated to fit: R_X86_64_PC32 against symbol `mingw_initcharmax' defined in.bss section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-charmax.o) c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\lib\crt2.o In function
pre_c_init': 129
mingw_app_type' defined in
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x51): relocation truncated to fit: R_X86_64_PC32 against symbol.bss section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-mingw_helpers.o) 135
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x71): relocation truncated to fit: R_X86_64_PC32 against symbol `_fmode' defined in .bsssection in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-xtxtmode.o) 133
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x78): relocation truncated to fit: R_X86_64_PC32 against symbol `__onexitend' defined in COMMONsection in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-atonexit.o) 133
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x7f): relocation truncated to fit: R_X86_64_PC32 against symbol `__onexitbegin' defined inCOMMON section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-atonexit.o) 135
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x86): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp__fmode' defined in.idata$5 section in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmsvcrt.a(dqows00253.o) c:\program files (x86)\dev-cpp\mingw64\x86_64-w64-mingw32\lib\crt2.o In function
pre_cpp_init': 157
_newmode' defined in .bss
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x136): relocation truncated to fit: R_X86_64_PC32 against symbolsection in C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a(lib64_libmingw32_a-_newmode.o) 162
h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crtexe.c (.text+0x13d): additional relocation overflows omitted from the output [Error] ld returned 1 exit status
Please help me understand why this happens and how to create an array of size 1000000000. I use a 64 bit Windows 8.1 on i5 core with 4Gb RAM. Do I have to upgrade my hardware?