#include "stdio.h"
#include "stdlib.h"
int main()
{
int a[4] = {1,2,3,4};
int *p = (int *)malloc(3*sizeof(int));
p[0] = 0;
p[1] = 1;
p[2] = 2;
for (int i = 0;i<3 ;i++)
{
printf("%d ",p[i]);
}
printf("\n");
p = (int *)realloc(p,4*sizeof(int));
for (int i = 0;i<3 ;i++)
{
printf("%d ",p[i]);
}
printf("\n");
p = (int *)malloc(4*sizeof(int));
for (int i = 0;i<3 ;i++)
{
printf("%d ",p[i]);
}
printf("\n");
return 0;
}
————————————————————————
结果
说明:对一个已经分配内存的指针,再次用malloc分配时会清空原来的数据,想保留原来数据需要用realloc。