C/C 中的鋸齒狀數組:揭開神秘面紗
與它的名字相反,鋸齒狀數組,也稱為鋸齒狀數組,是一個數組的數組,其中子數組具有不同的長度。雖然這個概念在 JavaScript 和 Python 等語言中普遍存在,但 C/C 並不提供此類資料結構的直接支援。
C/C 中缺乏原生鋸齒狀數組
當您在C 或C 語言中編譯以下程式碼時遇到錯誤:
<code class="cpp">int jagged[][] = { {0,1}, {1,2,3} };</code>
訊息「宣告'jagged'作為多維數組必須對除第一個維度之外的所有維度都有邊界」表示: C/C 多維數組必須指定除第一個維度之外的所有維度的長度。換句話說,交錯數組並不是原生 C/C 語言規範的一部分。
在 C 中模擬交錯數組
在 C 中實現交錯數組的功能,人們必須回歸替代方法。其中一個方法是利用指標數組:
<code class="cpp">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
在此範例中,jagged 是由五個指標組成的陣列。每個指標都指向一個分配的用於儲存整數的記憶體區塊。透過使用指標數組,您可以建立不同大小的子數組並保持對其記憶體分配和管理的控制。
以上是如何在 C/C 中建立鋸齒狀數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!