添加元素到二维动态table

Add elements to two-dimensionals dynamical table

有二维动态分配table。将元素放入 table 并打印它们。代码:

#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列'six'):

6 6 6 6 6

6 6 6 6 6

6 6 6 6 6

从零开始初始化内部循环。

 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");
    }