首頁  >  文章  >  後端開發  >  如何在 C/C 中建立鋸齒狀數組?

如何在 C/C 中建立鋸齒狀數組?

DDD
DDD原創
2024-11-06 08:30:03731瀏覽

How Can I Create Jagged Arrays in C/C  ?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn