簡體   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