」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 我們如何在 C/C++ 中實作鋸齒狀數組?

我們如何在 C/C++ 中實作鋸齒狀數組?

發佈於2024-11-17
瀏覽:663

How Can We Implement Jagged Arrays in C/C  ?

理解C/C 中的交錯數組

雖然交錯數組的概念(其中行可以有不同的長度)在標準C/ C ,有一些技術可以實現類似的功能。

在嘗試在C/C 中宣告交錯數組時,如圖所示:

int jagged[][] = { {0,1}, {1,2,3} };

編譯器出錯,突顯指定的要求除第一個維度外的所有維度的邊界。為了克服這個限制,另一種方法是利用指標數組。

使用指標數組建立交錯數組

在 C 語言中,可以使用以下方式實現交錯數組指標數組。該數組的每個元素都指向一個動態分配的子數組,其中每個子數組都有自己不同的長度。

例如:

int *jagged[5];

// Assign memory to each subarray
jagged[0] = malloc(sizeof(int) * 10);
jagged[1] = malloc(sizeof(int) * 3);

// Accessing elements
*jagged[0] = 0;
*(jagged[0]   1) = 1;

*jagged[1] = 1;
*(jagged[1]   1) = 2;
*(jagged[1]   2) = 3;

// Free memory after use
free(jagged[0]);
free(jagged[1]);

此方法允許建立具有不同大小的行的數組,模擬交錯數組的行為。需要注意的是,每個子數組的記憶體必須動態分配並手動釋放,以避免記憶體洩漏。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3