2011-10-20 62 views
-2

在插入排序,插入排序C編程

  • 我們如何可以插入一個新的整數到整數數組?
  • 數組的內存將在編譯期間分配,所以我們不能增加數組的大小,即使我們分配了一些額外的空間,如果所需的內存超過了分配的內存,我們應該怎麼做?
  • 我們應該創建一個新的數組插入每個整數?
  • 如果我們想要將更多數量的整數插入排序數組中,我們該怎麼辦?
  • 我們可以用指針來做到這一點嗎?
+2

這包含了太多的問題,目前還不清楚。請更具體一些。你的問題似乎更多地涉及數組的動態分配而不是插入排序。 – Rob

+4

我想你需要在C/books上抓取一些在線資料,並閱讀關於變量,數組等的內存分配以及一般的C編程。內存在編譯期間分配的公理是不正確的。 – Andrew

+0

我問了很多次相同的問題,是越來越具體,沒有不同的問題。可能與動態內存分配有關,但我詢問插入排序@robjb – CFreak

回答

2

我想你問的問題可以通過回答以下幾點:

  1. 如此 - 在一個以上的意義 - 讓擁有陣列內存在編譯時分配。

    1. 實際運行程序之前無法分配內存。

    2. 雖然數組的大小通常是在編譯時決定的(例如int array[32]),但對指針來說也是如此。

      例如,int *array = malloc(many * sizeof(int));many整數騰出空間。

  2. 雖然真實的,你不能增加分配給數組的內存量,同樣不擱置指針。

    例如,array = realloc(many_more * sizeof(int));many_more整數騰出空間。

我建議你看看this tutorial on pointers and arrays

+1

如果'many'碰巧是'SIZE_MAX/sizeof(int)+ 1' ... ;-),它不會爲'many'整數留出空間 –