为指定行数和列数的多维数组(矩阵)动态分配内存。 如何分配内存? 如何为二维数组分配内存? 如何动态分配内存? 我尝试使用循环为数组的每一行分配内存。 我尝试使用另一个循环为数组的每一列分配内存。 我希望程序能够成功地为多维数组分配内存。 我希望程序能够正确打印数组维度(行数和列数)。 我希望程序使用 free() 释放内存而不会出现任何内存泄漏
首先,您应该分配代表二维数组的双指针:
char **arr = malloc(NUMBER_OF_ELEMENTS);
第二,你应该在这个二维数组中分配每个数组
for ( i = 0; i < NUMBER_OF_ELEMENTS; i++)
{
arr[i] = malloc(array_size);
}
这行得通吗?
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 3;
int m = 4;
// Allocate memory for the row pointers
int** matrix = (int**) malloc(n * sizeof(int*));
// Allocate memory for each row
for (int i = 0; i < n; i++) matrix[i] = (int*) malloc(m * sizeof(int));
// test
matrix[2][2] = 3;
printf("%d ", matrix[2][2]);
}