#include #include #include #include void *point; void *memory_alloc(unsigned int size) { //printf("malloc...\n"); void *ptr; ptr=point; unsigned int i=0, memsiz; while(i!=size) { memsiz=ptr+i; if(memsiz==NULL) { i++; } else { memsiz=ptr+i; i++; } //printf("%p\n", memsiz); } //printf("malloc end...\n"); return ptr; } void memory_free(void *ptr) { //printf("freeing mem...\n"); unsigned int i,memsiz; if(point!=ptr) { printf("Invalid pointer!"); return 1; } unsigned int size=sizeof(ptr); for(i=0;i<=size;i++) { memsiz=ptr+i; memsiz=NULL; } //printf("freemem end...\n"); } void memory_init(void *ptr, unsigned int size) { //printf("meminit...\n"); unsigned int i; point=ptr; for(i=0;i<=size;i++) { ptr=ptr+i; ptr=NULL; } //printf("meminit end...\n"); } int main() { char region[50]; memory_init(region, 50); char* pointer = (char*) memory_alloc(10); if (pointer) memset(pointer, 0, 10); if (pointer) memory_free(pointer); return 0; }