Ned Batchelder, , , . (x86) , , .
(char*) stack ( void*).
parens MAX_MEMORY. , - , , , , , . , . (, , , [] 2, MAX_MEMORY, MAX_MEMORY[arrayname], ).
, .
, , , (, 8- ):
#include <stdio.h>
#include <unistd.h>
enum {
kMaxMemory = 1024 * 1024 * 2,
kAlignment = 8
};
void *stack = NULL;
void * memoryAlloc( size_t size) {
void *pointer;
size = (size + kAlignment - 1) & ~(kAlignment - 1);
if (stack == NULL)
stack = sbrk(kMaxMemory);
pointer = stack;
stack = (char*) stack + size;
return pointer;
}