以下是非常简单版本的malloc()函数,看起来给我分配了一些空间,但除了没有free()函数和我没有检查是否超出了分配的空间外,我如何检查代码是否正确?
有没有任何明显的错误会让"C"专家批评?
有没有任何明显的错误会让"C"专家批评?
#include <stdio.h>
#include <unistd.h>
#define MAX_MEMORY 1024 * 1024 * 2 /* 2MB of memory */
void *stack = NULL; /* pointer to available stack */
void * memoryAlloc(size) {
if (stack == NULL)
stack = sbrk(MAX_MEMORY); /* give us system memory */
void *pointer;
pointer = (void *)stack + size; /* we always have space :) */
stack += size; /* move in stack forward as space allocated */
return pointer;
}