将元素添加到二维动态表中

时间:2017-04-03 05:19:01

标签: c gcc malloc output free

有二维动态分配表。将元素放入表格并打印出来。代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int **tab;
    int ROWS=3;
    int COLUMNS=5;
    tab = (int**) malloc(ROWS * sizeof(int*));
    int i=0;
    for(i=0;i<ROWS; ++i)
    {
        tab[i] = (int*)malloc(COLUMNS * sizeof(int));
    }

    i=0;
    int j=0;
    for(;i<ROWS;++i)
    {
        for(;j<COLUMNS;++j)
        {
            tab[i][j]=6;
        }
    }

    i=0; j=0;
    for(;i<ROWS;++i)
    {
        for(;j<COLUMNS;++j)
        {
            printf("%i ", tab[i][j]);
        }
    }

    i=0;
    for(;i<ROWS;++i)
    {
        free(tab[i]);
    }
    free(tab);
}

输出只有一行?:

6 6 6 6 6

输出应该是这样的! (3行,5列&#39; 6&#39;):

6 6 6 6 6

6 6 6 6 6

6 6 6 6 6

1 个答案:

答案 0 :(得分:0)

从零开始初始化内循环。

 for(;i<ROWS;++i)
    {
        for(j=0;j<COLUMNS;++j)
        { //^^^ Initialize j = 0
            tab[i][j]=6;
        }
    }

    i=0; j=0;
    for(;i<ROWS;++i)
    {
        for(j=0;j<COLUMNS;++j)
        { //^^^ Initialize j = 0
            printf("%i ", tab[i][j]);
        }
        printf("\n");
    }