On Fri, 16 Jul 2010 02:20:16 +0300, Vladimir Panteleev <[email protected]> wrote:

Does this 2 or 3GB limitation only affect 32-bit operating systems? On my 64-bit Windows, with /LARGEADDRESSAWARE, a simple program can do close to 64K (65062 for me) 1-byte VirtualAllocs.

Said simple program in case anyone wants to test, excuse the C:

#include <windows.h>
#include <stdio.h>

#define N (64*1024)

void main()
{
        int i;
        char s[10];

        gets(s);
        for (i=0; i<N; i++)
        {
                void *p = VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE);
                if (p==NULL)
                {
                        printf("Allocation failed at %d\n", i);
                        break;
                }
                *(char*)p = 17;
                if (i==0 || i==N-1 || p==NULL)
                        printf("%p\n", p);
        }
        gets(s);
}

--
Best regards,
 Vladimir                            mailto:[email protected]

Reply via email to