realloc()
#include <stdio.h>#include <stdlib.h>
int main(void)
{
int n;
int i;
int * array;
array = (int*)malloc(sizeof(int));
printf("把元素赋值:");
for(n = 0;
NULL != (array = (int*)realloc(array, sizeof(int) * (n + 1)))
&& scanf("%d", array + n) == 1;
n++)
continue; // 可换为空语句或,NULL;
for(i = 0; i < n; i++)
printf("%d ", array[i]);
free(array);
system("pause");
return 0;
}
----------------解决方案--------------------------------------------------------
回复
你用MALLOC和REALLOC还不如用MEMSET来分配空间,MALLOC和REALLOC回产生堆 ----------------解决方案--------------------------------------------------------
memset()
功 能: 设置s中的所有字节为ch, s数组的大小由n给定
用 法: void *memset(void *s, char ch, unsigned n);
----------------解决方案--------------------------------------------------------