簡體   English   中英

為數組的元素動態分配內存

[英]Dynamically allocating memory for array's elements

我有一個自定義數據類型的二維數組,像這樣

struct element_t ** arr

如何使用malloc()為該數組的單個元素(arr [i] [j])分配空間? 提前致謝。

您可以執行以下操作:

struct element_t **arr;

arr = malloc(N * sizeof(*arr));
for (int i = 0; i < N; ++i) {
    arr[i] = malloc(X * sizeof(*arr[i]));
}

其中N是雙精度數組的大小,X是每個數組的大小;

這取決於您要如何分配內存。 如果您想要連續的內存塊,那么

arr = malloc(nrows * sizeof(*arr));
arr[0] = malloc(nrows * ncolumns * sizeof(struct element_t));
for(int i = 1; i < nrows; i++)
    arr[i] = arr[0] + i * ncolumns;  

對於非連續

arr = malloc(nrows * sizeof(*arr));
for(int i = 0; i < nrows; i++)
    arr[i] = malloc(ncolumns * sizeof(struct element_t));  

有關詳細說明,請閱讀如何動態分配多維數組?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM