關於陣列長度不需要編譯時確定

2021-06-20 00:52:08 字數 642 閱讀 6405

一直深信,陣列長度必須是乙個編譯時可確定的常數,最近才發現自己真的是out了,自己真的是老了。

c99標準已經支援變長陣列,換言之,陣列的長度可以在執行時確定,沒有任何問題。但是有個問題,就是陣列只能夠宣告,不能初始化,因為編譯器並不知道陣列的長度,無法初始化。

請看下面的例子:

第乙個例子,表明陣列長度可以直到執行時才確定。

第二個例子表明,執行時才能確定長度的陣列,不能初始化。

#includeint test_array()

int main()

int test_array()

; printf("we can define a array with len we input\n");

b[a-1] = 3;

printf("the last element of array is %d\n",b[a-1]);

return 0;

}int main()

vc++編譯均不通過,gcc編譯器第一段程式通過,第二段不通過

去除陣列中不需要資料

刪除掉指定位置資料 splice 向 從陣列中新增 刪除專案,然後返回被刪除的專案 注釋 該方法會改變原始陣列 index 整數,規定新增 刪除專案的位置,使用負數可從陣列結尾處規定位置 必需 howmany 要刪除的專案數量 如果設定為 0,則不會刪除專案 item1,itemx 向陣列新增的新專...

關於delete字串 需不需要加

今天在寫c 練習題時產生乙個疑惑 new出字元陣列後 需不需要在delete時加 按道理 只要是陣列應該都要加的,但是答案沒有加,於是晚上回來上機執行 環境 devc include include using namespace std 有一些些成員是之前用到的 不過不影響測試 class cba...

演算法 需要排序的最短子陣列長度

給定乙個無序陣列,求出需要排序的最短子陣列的長度。例如 arr 返回4,因為只有 5,3,4,2 需要排序。解決這個問題可以在時間複雜度為o n 額外空間複雜度為o 1 完成。初始化變數nominindex 1,從右向左遍歷,便利的過程記錄右側出現過的數的最小值,記為min。假設當前數為arr i ...