Where do you get this stralloc stuff? 268 MB is no problem for a simple HeapAlloc...
include \masm32\include\masm32rt.inc
.code
start:
invoke HeapAlloc, rv(GetProcessHeap), HEAP_GENERATE_EXCEPTIONS, 800000000
xchg eax, edi
.if eax
print str$(edi), 9, "is the pointer", 13, 10
invoke HeapFree, rv(GetProcessHeap), 0, edi
inkey str$(eax), 9, "retval HeapFree", 13, 10
.else
inkey LastError$()
.endif
exit
end start