#include<stdio.h>
#include<stdlib.h>
//打印输出数组
void println(int *ptr, int count)
{
printf("输入的整数分别是:");
for (int i = 0; i < count; i++)
{
printf("%d ", ptr[i]);
}
putchar('\n');
printf("动态分配的数组大小为:%d\n", count);
}
int main()
{
int i, num;
int count = 0;
int *ptr = NULL;
do
{
printf("请输入一些整数,以回车分隔(输入-1表示结束):");
scanf("%d", &num);
if (num == -1) //输入-1结束循环
{
break;
}
//把num存入数组
count++;
ptr = (int *)realloc(ptr, count*sizeof(int)); //分配内存
if (ptr == NULL) //分配失败,退出
{
exit(1);
}
ptr[count - 1] = num;
} while (true);
println(ptr, count);
free(ptr);
return 0;
}
动态内存分配C/C++代码实现
最新推荐文章于 2023-03-04 16:08:18 发布