首頁  >  文章  >  後端開發  >  如何在 C 和 C 中模擬鋸齒狀數組?

如何在 C 和 C 中模擬鋸齒狀數組?

DDD
DDD原創
2024-11-06 04:54:02480瀏覽

How to Simulate Jagged Arrays in C and C  ?

C 和C 語言中的鋸齒狀數組

在有關程式語言的討論中可能會遇到術語“鋸齒狀數組” 。然而,C 或 C 本身並不支持這個概念。交錯數組是指每個元素可以是變長數組的數組。

在給定的程式碼範例中,嘗試使用以下語法聲明交錯數組:

<code class="c">int jagged[][] = { {0,1}, {1,2,3} };</code>

然而,C 在編譯時拋出錯誤,表明除了第一個維度之外的所有維度都必須指定邊界。這是因為 C 要求數組在編譯時具有固定大小。

為了在 C/C 中模擬鋸齒狀數組,常用的方法是利用指標數組。該數組中的每個指標都指向動態分配的記憶體區塊,其中可以儲存交錯數組的元素。

C 中的範例:

<code class="c">#include <stdlib.h>

int main() {
    // Initialize array of pointers
    int *jagged[5];

    // Allocate memory for each pointer and set array values
    jagged[0] = malloc(sizeof(int) * 2);
    *(jagged[0]) = 0;
    *(jagged[0] + 1) = 1;

    jagged[1] = malloc(sizeof(int) * 3);
    *(jagged[1]) = 1;
    *(jagged[1] + 1) = 2;
    *(jagged[1] + 2) = 3;

    // Use the jagged array
    // ...

    // Deallocate memory
    free(jagged[0]);
    free(jagged[1]);

    return 0;
}</code>

以上是如何在 C 和 C 中模擬鋸齒狀數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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