假设我有这样一段代码:
#include <iostream>
int array[];
int main()
{
int length;
std::cin >> length;
for (int i = 0; i < length; i++)
{
std::cin >> array[i];
}
}
这不起作用,因为我没有在程序开始时声明数组的大小。然而,我不能声明数组的大小,因为数组的长度取决于用户输入,并且我只有在声明数组后才能得到这个输入。(我要求这个数组是一个全局变量,所以我不能在声明长度变量后声明它)
3条答案
按热度按时间h7appiyu1#
您需要声明指针使其成为动态的,以便在运行时分配长度。
使用后确保释放内存
或者,您可以使用向量,将处理大小和删除自动.
uqdfh47h2#
如果你真的想使用数组而不是一些stl容器,你可以使用malloc和char*:
这比C++更像C,但它确实有效。
uz75evzq3#
您需要为此执行动态分配,然后释放分配