C++ 如何向元素数目未知的数组获取输入?(我不想使用std::vector) int n=5; int-arr[n]; 对于(int i=0;i

C++ 如何向元素数目未知的数组获取输入?(我不想使用std::vector) int n=5; int-arr[n]; 对于(int i=0;i,c++,dynamic-arrays,C++,Dynamic Arrays,一旦你这样做 int-arr[n]; 数组的大小是一劳永逸决定的。您无法更改它 另一方面,您可以动态分配指针指向的内存 int*arr; arr=新整数[n]; //现在您可以像使用另一个arr一样使用此arr 如果以后需要更改arr指向的内存大小,可以根据需要取消分配和重新分配 delete[]arr; arr=新整数[m]; //也许有一种更为惯用的方法来做这件事,但这实在太过分了 //对于我来说,关心这些细节是非常重要的。。。 显然,您需要考虑如何将值复制到另一个临时数组,以避免在解

一旦你这样做

int-arr[n];
数组的大小是一劳永逸决定的。您无法更改它

另一方面,您可以动态分配指针指向的内存

int*arr;
arr=新整数[n];
//现在您可以像使用另一个arr一样使用此arr
如果以后需要更改
arr
指向的内存大小,可以根据需要取消分配和重新分配

delete[]arr;
arr=新整数[m];
//也许有一种更为惯用的方法来做这件事,但这实在太过分了
//对于我来说,关心这些细节是非常重要的。。。
显然,您需要考虑如何将值复制到另一个临时数组,以避免在解除分配过程中丢失它们


<> P>这一切疯狂都是不必要的。<代码> STD::向量为你照顾所有这些。你不想使用它。好,但是你不是在写C++。完全停止。< /P>你不想使用动态数组(例如,<代码> STD::向量< /代码>)并且,在代码段中没有有效的C++代码,并且您有未知的元素数。您可以有一个非常大的数组,比如“代码> int ARR(1000000)。如果你需要的部分,你可以抛出一个异常。抱歉,但是C++没有这样的工作。在C++中,所有的数组的大小必须在编译时知道。这能回答你的问题吗?
int n = 5;
int arr[n];
for (int i =0; i<n; i++){
    cout << "enter number" <<endl;
    cin >> arr[i];
}