C/C 中的鋸齒數組
儘管它具有多功能性,C/C 程式語言本身並不支援鋸齒數組的概念,指的是具有可變長度子數組的數組。
問題陳述:
嘗試使用以下語法在C/C 中定義鋸齒狀數組時:
int jagged[][] = { {0,1}, {1,2,3} };
開發人員遇到以下編譯錯誤:
error: declaration of `jagged' as multidimensional array must have bounds for all dimensions except the first
解決方案:
為了解決此限制,C 開發人員通常使用指標數組。此方法涉及建立一個儲存指向不同長度子數組的指標的陣列。例如:
<code class="c">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
在此範例中,jagged 陣列包含指向兩個子陣列的指標:jagged[0] 指向具有10 個元素的子數組,而jagged[1] 指向具有3 個元素的子數組。每個子數組都是使用 malloc 函數動態分配的。
透過利用指標數組,開發人員可以有效地模擬 C/C 中的鋸齒狀數組。然而,值得注意的是,這種方法需要仔細的記憶體管理和指標操作。
以上是如何在 C/C 中建立鋸齒狀數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!