#include <stdlib.h>
#include <stdio.h>
#define SIZE 20
int *p ;
int m = SIZE;
int n = 0;//多少个元素
int main(){
p = malloc(SIZE);
scan_input();
printArray();
free(p);
return 0;
}
void scan_input(){
//scanf("%d",p[]);
int i =0;
while(1){
if(i>=m/4){//int 类型所以除以4
//relloc
m = m*2;//一次性扩大两倍
printf("%s","realloc...");
p = realloc(p,m);
}
scanf("%d",&p[i]);
if(p[i] == -1){
break;
}
i++;
n++;
}
return ;
}
void printArray(){
int i;
for(i=0;i<n;i++){
printf("%d\n",p[i]);
}
return ;
}
本文介绍了一个使用C语言实现的简单程序,该程序通过malloc和realloc函数实现了动态内存分配和再分配的功能。程序允许用户输入整数并存储在动态分配的数组中,当数组空间不足时会自动扩大容量。
199

被折叠的 条评论
为什么被折叠?



