Download Pelles C here: http://www.pellesc.se
.386
.model flat,stdcall
option casemap:none
includelib \PellesC\lib\Win\kernel32.lib
includelib \PellesC\lib\Win\user32.lib
ExitProcess PROTO :DWORD
printfX PROTO C format:DWORD,args:VARARG
.data
format1 db 'This is a % % to % %',0
str1 db 'printfX',0
str2 db 'demo',0
str3 db 'type',0
str4 db 'strings.',0
.code
start:
invoke printfX,ADDR format1,
ADDR str1,ADDR str2,
ADDR str3,ADDR str4
invoke ExitProcess,0
END start


catch_type *pcs;
...
catch_stack = (catch_type *)(malloc(max_catch_stack * sizeof(catch_type)+8));
pcs = (catch_type *)(((long long)catch_stack) + ((long long)catch_stack % 16));
printf("%p %p\n", catch_stack, pcs);
...
if ((fail_value = do_setjmp(pcs[catch_stack_pos])) == 0) {
Quote7.24.3 Memory management functions
1 The order and contiguity of storage allocated by successive calls to the aligned_alloc, calloc,
malloc, and realloc functions is unspecified. The pointer returned if the allocation succeeds is
suitably aligned so that it may be assigned to a pointer to any type of object with a fundamental
alignment requirement and size less than or equal to the size requested. It may then be used to
access such an object or an array of such objects in the space allocated (until the space is explicitly
deallocated).
Page created in 0.078 seconds with 15 queries.