[英]Difference between the methods of instantiating array
假設在一個問題中,我們必須聲明一個n大小的數組,其中1 <= n <= 1000000000
有兩種(可能更多)的方法可以做到這一點:
int arr[1000000001];
並可以根據輸入根據需要處理空間。 首先可以詢問用戶數組的大小,然后實例化數組:
CIN >> N; int arr [n];
我想知道兩種方法的優點和缺點。
兩種方法的區別在於:
第一種方法符合標准,而第二種方法不符合標准。 C ++標准不允許使用可變長度數組,編譯器將其作為擴展來支持,但嚴格意義上來說,這種用法是不可移植的。
第一種方法的風險是,盡管不需要這樣做,但可能會耗盡堆棧空間或浪費內存。 在這種情況下,最好的解決方案是使用std::vector
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.