Ahoj,
pomocí funkce malloc jsem alokoval po malých blocích 18GB, aniž by cokoliv z toho vrátilo NULL a správce úloh windows říká, že můj program používá 950MB paměti (jedu na x64 s 32GB RAM). Jak je to možné, musím před zájmem o alokování takového místa volat ještě jiné funkce kvůli oprávněním, nebo to alokovat s pomocí HeapAlloc nebo VirtualAlloc? Ptám se i proto, že mám systémové SSD a že ten poslední a dosti drahý vydržel půl roku. Kdyby mi systém používal pro tahle data SSD jako operační paměť, tak si můžu za měsíc koupit novej disk
Můžete mi prosím napsat, jak to všechno funguje a případně co dělám špatně?
Díky
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Newbie

Nahlásit jako SPAM
IP: 88.100.48.–
God of flame
Nejlepší odpověď
Vůbec jsem nevěděl, že to systém nemusí alokovat v momentě vytváření toho bloku, to mi dost uniká, jak to může fungovat, stejně tam nic nesmí napsat
To si zjišťuje, který ukazatel těm datům náleží, a až při při prvním zápisu do toho intervalu to alokuje?
Vynuloval jsem to hned po alokování a už to ukazuje normálně. A ještě dík za radu k vypnutí virtuální paměti, já jak programuju tyhle věci, tak se vždycky úplně děsím, že kdybych se někde začal vrtat v cyklu do disku, že je konec... Hned se budu cítit trochu líp ohledně mýho SSD.
Zjistit počet nových příspěvků




























