malloc和calloc函数
都是分配一块内存
malloc()函数有一个参数,即要分配的内存空间的大小:
void *malloc(size_t size);
calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。
calloc(int n,size_t size)
其两者的区别就是:calloc分配的内存的数值默认为0.
realloc函数(不建议使用,如果有需要的地方尽量使用链表实现其要实现的功能)
可以改变一段动态内存的大小
void *realloc(void *mem_address, unsigned int newsize);
原地址不变,至改变大小,例:
#include<stdio.h>
#include<stdlib.h>
int
main()
{
inti;
int
*pn=(
int
*)
malloc
(5*
sizeof
(
int
));
printf
(
"malloc%p\n"
,pn);
for
(i=0;i<5;i++)
pn[i]=i;
pn=(
int
*)
realloc
(pn,10*
sizeof
(
int
));
printf
(
"realloc%p\n"
,pn);
for
(i=5;i<10;i++)
pn[i]=i;
for
(i=0;i<10;i++)
printf
(
"%3d"
,pn[i]);
free
(pn);
return
0;
}