微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在接收变量值作为输入的同时使用变量声明数组?检查我的代码

如何解决如何在接收变量值作为输入的同时使用变量声明数组?检查我的代码

int a;
cin>>a;
int arr[a];

我想根据用户的大小声明一个数组。我是编程新手。 可以做什么?这个方法对吗?

解决方法

你想要实现的东西叫做可变长度数组,简称 VLA which isn't a part of C++ standard

可以做什么?

它调用一个 undefined behavior

这个方法正确吗?

没有。在这里获得 std::vector<> 一点帮助的最佳机会。它动态分配请求的数据字节,您可以选择使用所需的值初始化它们。

你可以这样实现:

int n = 0;
std::cin >> n; // make sure it's a valid size
std::vector<int> a(n);

如果您希望它的运行时间保持增长,只需​​使用其 push_back() 方法,您就可以通过其 size() 获得矢量大小。

,

您已经标记了这个 C++,在这种情况下,很少有借口不使用 std::vector 解决这个问题。

如果你必须这样做,你可以写成 C 风格:

for (int i = 1; i <= 9; i++) {
System.out.print(i + " | ");
for (int j = 1; j <= 9; j++) {
// Display the product and align properly
System.out.printf("%4d",i * j);
}
System.out.println(); // This is the print statement I'm referring to. How can I visualize this?
}

或更好(根据 Thomas 在下面的评论):

int a;
cin >> a;
int * arr = (int *)malloc(sizeof(int) * a);

但矢量绝对是首选。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。