C 动态分配内存 (备忘)

C 动态分配内存


malloc 和 free 

void *malloc(size_t size);

void free(void *pointer);

 

calloc 和 realloc

void *calloc(size_t num_elements, size_t elements_size);

void realloc(void *ptr, size_t new_size); 

 

 1 
 2 /*
 3  * alloc.h
 4  *
 5  * 定义一个不易发生错误的内存分配器
 6  */
 7 
 8 #include <stdlib.h>
 9 
10 #define malloc
11 #define MALLOC(num,type) (type *)alloc((num) * sizeof(type))
12 
13 void *alloc(size_t size);
14 

 

/*
 * alloc.c
 *
 * 不易发生错误的内存分配器的实现
 
*/

#include 
<stdio.h>
#include 
"alloc.h"
#undef malloc

void *alloc(size_t size)
{
     
void *new_mem;
     new_mem 
= malloc(size);
     
if(new_mem == NULL)
     {
         printf(
"Out of memory!\n");
         exit(
1);
     }
 
     
return new_mem;
}

 

posted @ 2010-12-18 14:41  Old  阅读(275)  评论(0编辑  收藏  举报