C语言为二维数组分配可能不连续的内存

下面的代码演示了如何创建一个内存可能不连续的二维数组。首先分配“外层”数组,然后分别用malloc语句为每一行分配。

int rows = 2;
int columns = 5;

int **matrix = (int **) malloc(rows * sizeof(int *));

for (int i = 0; i < rows; i++) {
    matrix[i] = (int *) malloc(columns * sizeof(int));
}

因为分别用了malloc,所以内存不一定是连续的,如图4-15所示。

不连续分配

实际的分配情况取决于堆管理器和堆的状态,也有可能是连续的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程