malloc()函数有一个参数,即要分配的内存空间的大小:
void *malloc(size_t size);
calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小:
void *calloc(size_t numElements,size_t sizeOfElement);
如果调用成功,函数malloc()和calloc()都将返回所分配的内存空间的首地址。
realloc()对malloc分配的内存进行大小调整:
extern void *realloc(void *mem_address, unsigned int newsize);
int *p1, *p2;
p1 = (int *)malloc(sizeof(int)*20); //相当于int a[20];
p2 = (int *)calloc(20, sizeof(int)); //同上,但是自动初始化所有值
p1[0] = 1; //可直接进行下标操作
p1 = (int *)realloc(p1, sizeof(int)*40);
/*先判断当前指针是否有足够空间,如果足够就扩大并返回原有指针,
否则申请新的空间,复制数据,释放原有空间,返回新地址。*/