在插入排序,插入排序C編程
- 我們如何可以插入一個新的整數到整數數組?
- 數組的內存將在編譯期間分配,所以我們不能增加數組的大小,即使我們分配了一些額外的空間,如果所需的內存超過了分配的內存,我們應該怎麼做?
- 我們應該創建一個新的數組插入每個整數?
- 如果我們想要將更多數量的整數插入排序數組中,我們該怎麼辦?
- 我們可以用指針來做到這一點嗎?
在插入排序,插入排序C編程
我想你問的問題可以通過回答以下幾點:
據不如此 - 在一個以上的意義 - 讓擁有陣列內存在編譯時分配。
實際運行程序之前無法分配內存。
雖然數組的大小通常是在編譯時決定的(例如int array[32]
),但對指針來說也是如此。
例如,int *array = malloc(many * sizeof(int));
爲many
整數騰出空間。
雖然是真實的,你不能增加分配給數組的內存量,同樣不不擱置指針。
例如,array = realloc(many_more * sizeof(int));
爲many_more
整數騰出空間。
如果'many'碰巧是'SIZE_MAX/sizeof(int)+ 1' ... ;-),它不會爲'many'整數留出空間 –
這包含了太多的問題,目前還不清楚。請更具體一些。你的問題似乎更多地涉及數組的動態分配而不是插入排序。 – Rob
我想你需要在C/books上抓取一些在線資料,並閱讀關於變量,數組等的內存分配以及一般的C編程。內存在編譯期間分配的公理是不正確的。 – Andrew
我問了很多次相同的問題,是越來越具體,沒有不同的問題。可能與動態內存分配有關,但我詢問插入排序@robjb – CFreak