繁体   English   中英

实例化数组的方法之间的区别

[英]Difference between the methods of instantiating array

假设在一个问题中,我们必须声明一个n大小的数组,其中1 <= n <= 1000000000

有两种(可能更多)的方法可以做到这一点:

  1. int arr[1000000001]; 并可以根据输入根据需要处理空间。
  2. 首先可以询问用户数组的大小,然后实例化数组:

    CIN >> N; int arr [n];

我想知道两种方法的优点和缺点。

两种方法的区别在于:

第一种方法符合标准,而第二种方法不符合标准。 C ++标准不允许使用可变长度数组,编译器将其作为扩展来支持,但严格意义上来说,这种用法是不可移植的。

第一种方法的风险是,尽管不需要这样做,但可能会耗尽堆栈空间或浪费内存。 在这种情况下,最好的解决方案是使用std::vector

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM