realloc是用来追加内存分配的,一段代码如下,仅供参考:
#include <stdio.h>
int main(void)
{
int *p = NULL;
int num = 0;
int count = 0;
int i = 0;
printf("Please input numbers:\n");
scanf("%d",&num);
while(num != 0)
{
++ count;
p = (int*)realloc(p,count*4);
*(p + count - 1) = num;
scanf("%d",&num);
}
for (;i < count; i ++)
{
printf("%d ",*(p+i));
}
getch();
return 0;
}
上述代码中,可以无限制地输入整数值进行存储,效果大致相当于链表,但效率比链表要低。如果在执行p = (int*)realloc(p,count*4);之前,p已经被malloc过,那么当用realloc时,可以简写如下:realloc(p,count*4);