unsigned int global_heap_start = 0; unsigned int global_heap_end = 0; unsigned int global_heap_next = 0; void* malloc(num_bytes); int set_heap_settings(param_start, param_end); unsigned int get_heap_next(); void* malloc(num_bytes) int num_bytes; { unsigned int allocated_pointer = global_heap_next; global_heap_next = global_heap_next + num_bytes; if (global_heap_next > global_heap_end) { return 0; /* No more memory */ } return allocated_pointer; } int set_heap_settings(param_start, param_end) unsigned int param_start; unsigned int param_end; { global_heap_start = param_start; global_heap_next = param_start; global_heap_end = param_end; return 0; } unsigned int get_heap_next() { return global_heap_next; }