#include <iostream>
#include <cstring>
using namespace std;
int main() {
int len = 10;//定义一个10个单位的长度
int* num = new int[len];//新建一个内存空间
int count = 0;//用来记录存的数量
while (1)//来个死循环
{
int n = 0;
cin >> n;
if (n == 0)
{
break;
}
if (count == len)//如果10存满了,就再继续申请空间
{
int* p = new int[len + 10];//申请新的数组,每次递增10个
memcpy(p, num, len * 4);//把num中的数据copy到p中
delete[] num;//释放num的内存
num = p;//原指针指向新的内存块
len = len + 10;//更新内存块大小
}
num[count++] = n;
}
for (int i = count-1; i >= 0; i--)
{
cout << num[i] << " ";
}
return 0;
}
// 64 位输出请用 printf("%lld")
这个我运用了动态内存分配,比较难理解,但是好处是不会拘泥于数组个数

京公网安备 11010502036488号