Newsgroup: it.comp.programmare.win32
Titolo: Max heap size

Salve
Nelle opzioni di un progetto Borland C++ Builder 6.0 c'è la voce
Max Heap Size = 0x00100000     ( specifies the maximum size of the heap in 
hexadecimal.)
Allora per vedere l'effetto che fa (cit.) ho creato una matrice enorme
 char *p = (char*) malloc(8192*8192*4);
cioè di dimensione 268.435.456 = 0x10000000  bytes
ero convinto che ci fossero dei problemi, invece la memoria viene allocata 
tranquillamente.
La memoria che ho allocato non va a finire nell' heap? Cosa mi sfugge?
Grazie 

 In che senso, come fai a vederlo?
Come  faccio a vedere cosa? che la memoria viene allocata?
il puntatore che mi ritorna non è NULL, quindi è stata allocata.

 Come  faccio a vedere cosa? che la memoria viene allocata?
... no, non intendevo questo: hai scritto che non va a finire nell'heap?
 ... la mia domanda è: come fai a sapere che non va a finire nell'heap?


Fabuloso ha scritto:

... scusa non ho visto il punto di domanda:
tu hai scritto:
"La memoria che ho allocato non va a finire nell' heap?" (questa l'avevo
intesa come una affermazione non come una domanda!!!!)
ad ogni modo qualcuno dice che l'heap non ha limiti.
prova a vedere questo link (in fondo, l'ultima risposta)
http://groups.google.it/group/it.comp.lang.c++/browse_thread/thread/4b0eea2af959ed8f/78db605e217d2fa0?lnk=st&q=&rnum=4&hl=it#78db605e217d2fa0


ma allora iul parametro  Max Heap Size  a che  serve?
boh... 

Fabuloso ha scritto:

... il link che ti ho segnalato era comunque riferito ad un programma in
C che girava sotto linux; forse in windows le cose sono diverse, e
seguendo il buon senso quando viene creato l'eseguibile è il linker che
inserisce l'informazione di quanta memoria (stack, heap, etc.) ha
bisogno il programma ...
... tuttavia ancora non ho capito bene cosa è che non ti convince ... se
tutto ti funziona!!!
ciao e eventualmente a domani ... sera!

Fabuloso ha scritto:

... invece ecco mi qua,
ho capito adesso cosa non ti convince (ho contato meglio gli zeri):
sebbene il max heap size è inferiore ha quanto tu hai allocato tutto
funziona!
... ma ora ti faccio una domanda: hai provato a vedere se ti cambia i
valori dell'array che sono al di la del limite dello heap?

 sfugge?
Dai un'occhiata a questo thread, penso ti possa dare la risposta 
che stai cercando:
http://groups.google.it/group/borland.public.cppbuilder.vcl/browse_thread/thread/300213dec8776e69/
-- 
Stefano Frosio
www.esse-effe.com

 >
http://groups.google.it/group/borland.public.cppbuilder.vcl/browse_thread/thread/300213dec8776e69/
Ti ringrazio, è proprio la risposta che cercavo:
If all you do is using dynamic memory allocation through "new" and
"malloc", then this setting does not affect you. It only affects you if
you yourself directly use Windows API calls like LocalAlloc or GlobalAlloc
to reserve memory.

 valori dell'array che sono al di la del limite dello heap?
si me li cambia, ci scrivo tranquillamente. Vedi la soluzione piu sotto :O)
Grazie 

 GlobalAlloc to reserve memory.
Manco per niente!!!! ho fatto la prova:
Funziona anche usando  LocalAlloc oppure  GlobalAlloc !!!!!!
????? 

> Manco per niente!!!! ho fatto la prova:
Sicuro sicuro?
Beh era la risposta che cercavi, non ho scritto che fosse quella 
giusta :-).
Non saprei, magari guarda un po' nei thread arretrati dei NG 
Borland...
-- 
Stefano Frosio
www.esse-effe.com