[英]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.