首页 > 编程语言 > 详细

动态分配二维数组

时间:2020-03-21 04:12:06      阅读:40      评论:0      收藏:0      [点我收藏+]

可能不连续的情况

void create_arr()
{
    int rows = 2;
    int columns = 4;

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

    for (int i = 0; i < rows; ++i)
    {
        for (int j = 0; j < columns; ++j)
        {
            printf("&(matrix[%d][%d]) : 0x%p\n", i, j, &(matrix[i][j]));
        }
    }
}

连续的情况

void create_arr_sort()
{
    int rows = 2;
    int columns = 4;

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

    for (int i = 0; i < rows; ++i)
    {
        for (int j = 0; j < columns; ++j)
        {
            printf("&(matrix[%d][%d]) : 0x%p\n", i, j, &(matrix[i][j]));
        }
    }
}
void create_arr_sort2()
{
    int rows = 2;
    int colums = 4;

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

    for (int i = 0; i < rows; ++i)
    {
        for (int j = 0; j < colums; ++j)
        {
            printf("0x%p\n", matrix + (i * colums) + j);
        }
    }
}

```

动态分配二维数组

原文:https://www.cnblogs.com/s3320/p/12535386.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!