large address aware

seeker010

New member
I was under the impression that largeaddressaware means 32bit apps can address 4GiB of memory. I tried to allocate 4,170,863,000 bytes and my assert failed.
 
I was under the impression that largeaddressaware means 32bit apps can address 4GiB of memory. I tried to allocate 4,170,863,000 bytes and my assert failed.

The matter is a bit big, so in a small summary:

With LAA 32-bit applications can address approximately 3GB under WindowsXP 32-bit (space between 3rd-4thGB in RAM reserved for system) and a little bit more under Windows Vista 64-bit. There is a small procedure to follow for each OS to make things work. Google and if you can't find it, let me know and i will send you the link.
 
htrb.jpg


I already figured out the problem months ago. new is merely a wrapper for malloc that works with all object types but takes up codespace. the heap is reduced to 768 MiB in Codewarrior. In gnu, intel and MS compilers I get a little bit more to work with. using malloc directly gives me a much bigger address space, but I might as well using C instead of C++. I eventually used pointers to positions in tmp files in 32bit code, but the I/O contraints were killer, but did allow cross platform work between 32bit and 64bit targets. btw I was talking about 32bit apps in 64bit OS, which doesn't have the 1GiB reserved space constraint, but still has code space constraints.
 
Last edited:
Back
Top