Heap Größenbeschränkung C

Ich habe eine Frage bezüglich heap-in der Programmausführung layout-Diagramm einer C-Programm.

Ich weiß, dass alle dynamisch zugewiesenen Speicher zugeteilt, in Haufen, die wächst dynamisch. Aber ich würde gerne wissen, was ist die max-heap-Größe für ein C-Programm ??

Bin ich einfach anbringen ein Beispiel C Programm ... hier bin ich versucht zu reservieren, 1GB memory, string und sogar die memset ...

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
       char *temp;
       mybuffer=malloc(1024*1024*1024*1);

       temp = memset(mybuffer,0,(1024*1024*1024*1));

       if( (mybuffer == temp) && (mybuffer != NULL))
       printf("%x - %x\n", mybuffer, &mybuffer[((1024*1024*1024*1)-1)]]);
       else
       printf("Wrong\n");

       sleep(20);
       free(mybuffer);
       return 0;
    }

Wenn ich über das Programm in 3 Instanzen auf einmal, dann malloc ausfallen sollte mindestens in einem Fall [ich bin so] ... aber immer noch malloc erfolgreich war.

Wenn es erfolgreich ist kann ich wissen, wie das OS kümmert sich um 3GB von dynamisch zugewiesenen Speicher.

InformationsquelleAutor codingfreak | 2009-12-11

Schreibe einen Kommentar