int main()
{
int i = 0;
int* pI = (int*)malloc(5 * sizeof(int));
short* pS = (short*)calloc(5, sizeof(short));
for(i=0; i<5; i++)
{
printf("pI[%d] = %d, pS[%d] = %d\n", i, pI[i], i, pS[i]); //打印出申请内存里的内容,看看有何不同
}
pI = (int*)realloc(pI, 10 * sizeof(int)); //修改已经分配内存块大小
for(i=0; i<10; i++)
{
printf("pI[%d] = %d\n", i, pI[i]);
}
pI = (int*)realloc(pI, 20 * sizeof(int));
for(i=0; i<20; i++)
{
printf("pI[%d] = %d\n", i, pI[i]);
}
pI = (int*)realloc(pI, 30 * sizeof(int));
for(i=0; i<30; i++)
{
printf("pI[%d] = %d\n", i, pI[i]);
}
free(pI);
free(pS);
return 0;
}
需要先使用malloc分配内存,才能再用realloc,realloc可以扩大或者缩小malloc分配的内存,第三个参数是要扩大或缩小后的大小。