Hallo.
Ich möchte in meinem Programm mehr als 1Gb RAM Speichern.
Folgendes:
1 | #define STORAGE 1073741824LLU
|
2 | static char example1[STORAGE];
|
3 | static char example2[STORAGE];
|
4 | static char example3[STORAGE];
|
Bringt oben angehängte Fehlermeldung beim Ausführen. Auch mit
Administrator Rechten.
Mit calloc / malloc zeigt der zweite Zeiger auf Null und kann ebenfalls
nicht Reserviert werden.
1 | #define STORAGE 1073741824LLU
|
2 | char *example1;
|
3 | char *example2;
|
4 | char *example3;
|
5 | example1 = (char*)calloc(STORAGE, sizeof(char));
|
6 | if(example1 == NULL) { printf("Storage1 failure\r\n"); return 0; }
|
7 | example2 = (char*)calloc(STORAGE, sizeof(char));
|
8 | if(example2 == NULL) { printf("Storage2 failure\r\n"); return 0; }
|
9 | example3 = (char*)malloc(sizeof(char) * STORAGE);
|
10 | if(example3 == NULL) { printf("Storage3 failure\r\n"); return 0; }
|
Also 1Gb kann ich immer Reservieren. Bei mehr, funktioniert das Programm
nicht mehr.
Ich benutze GCC von mingw mit der Compiler Option
1 | gcc client.c -o client.exe -march=x86-64
|
Selbst bei 32bit sollte ich bis zu 4Gb erhalten können, warum
funktioniert das ganze nicht?
Das ganze ist nur eine Spielerei - für den Fall man könnte sowas
wirklich mal brauchen..
Mein System basiert auf Windows 10, 32Gb RAM, i7-8850H.
Vielen dank
mfg
Awallner