事先不知道有多少个数字,把输入的数字放入动态数组中,在C++中怎么实现,求代码

2025-12-18 09:21:19
推荐回答(5个)
回答1:

如果是C, 先使用malloc分配一块内存做为数组,如果需要存储的数据量过大时,使用realloc扩大该块内存。
求一个C数组的长度必须知道:
1. 数组大小
2. 数组单个元素大小
如果所谓的“未知数组”不具备上述的两个因素,就无法求得其长度。
补充:
对string求长度,例子:
string str = "abc";
cout << str.length(); -> 结果为:3

cin返回的是一个istream对象,不能用于结束输入的判断。
你可以使用ctrl+Z做为结束输入的标志,要这样写:
int i = 0;
int r;
while (true) {
cin >> r;
if (cin.eof())
break;
i++;
}

cout << i;
另外,虚机团上产品团购,超级便宜

回答2:

如果是C, 先使用malloc分配一块内存做为数组,如果需要存储的数据量过大时,使用realloc扩大该块内存。
求一个C数组的长度必须知道:
1. 数组大小
2. 数组单个元素大小
如果所谓的“未知数组”不具备上述的两个因素,就无法求得其长度。
补充:
对string求长度,例子:
string str = "abc";
cout << str.length(); -> 结果为:3

cin返回的是一个istream对象,不能用于结束输入的判断。
你可以使用ctrl+Z做为结束输入的标志,要这样写:
int i = 0;
int r;
while (true) {
cin >> r;
if (cin.eof())
break;
i++;
}

cout << i;

回答3:

C/C++的数组因为是在栈中分配内存,所以在定义时必须指定一个确切的长度。如果不知道长度怎么办呢?就在堆中分配吧!
C++:
int* a = new int[length];
C:
int* a = (int*) malloc(length * sizeof(int));
length可以是一个变量,即在程序运行前并不知道length的值。但用完一定要手动释放内存,C/C++并不是java。
C++:
delete [] a;
C:
free(a);

回答4:

用vector容器吧!或者你可以试下用下面的例子的方法:
例如:
#include
main()
{ int i=0;
vector v;//说明一个int类型的载体
for(;i++)
{
v.push_back(i);//用for语句把元素一个一个存入vector中
}
/*v.clear() 作用是对存入的数据清空*/

}
for(i=0;i{
cout<}
cont<}

回答5:

设计一个链表就可以。