亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

允許在運行時不進行動態分配的數組大小?

允許在運行時不進行動態分配的數組大???

C++
慕的地6264312 2019-06-19 11:26:59
允許在運行時不進行動態分配的數組大?。课沂褂肅+已經有幾年了,今天我看到了一些代碼,但是這怎么可能是完全合法的呢?int main(int argc, char **argv){     size_t size;     cin >> size;     int array[size];     for(size_t i = 0; i < size; i++)     {         array[i] = i;         cout << i << endl;     }     return 0;}GCC主編。如何在運行時不使用new或malloc?為了再次檢查,我搜索了一些與我類似的代碼,聲稱它們存在存儲大小錯誤。即使是Deitel的C+如何在常見編程錯誤4.5下編程p.261狀態:只能使用常量來聲明自動數組和靜態數組的大小。照亮我。
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

這在C99中是有效的。

C99標準支持堆棧上的可變大小數組。可能您的編譯器也選擇了支持這個構造。

請注意,這與mallocnewgcc分配堆棧上的數組,就像int array[100]通過調整堆棧指針。沒有完成堆分配。就像_alloca.


查看完整回答
反對 回復 2019-06-19
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這被稱為VLA(可變長度數組)。它在C99中是標準的,但是GCC允許它在c+代碼中作為擴展。如果您希望它拒絕代碼,請嘗試使用-std=standard-ansi-pedantic各種選擇。


查看完整回答
反對 回復 2019-06-19
  • 3 回答
  • 0 關注
  • 512 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號