有二维动态分配表。将元素放入表格并打印出来。代码:
#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
答案 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");
}