#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int row, col, i, j, n;
char U;
char **board;
printf("Enter number of dimensions: ");
scanf("%d",&n);
row = n;
col = n;
board = malloc(row*sizeof(char *));
for(i=0;i<row;i++)
{
board[i] = malloc(col*sizeof(char));
if(board[i] == NULL)
{
printf("Out of memory");
return 0;
}
}
for(i = 0; i<n; i++)
{
for(j = 0; j<n; j++)
{
board [i][j] = U;
}
}
for(i = 0; i<n; i++)
{
for(j = 0; j<n; j++)
{
printf("%c",board[i][j]);
}
}
}
我刚刚学习了malloc,而且我只了解stdio.h函数,指针,数组,循环,制作自己的函数和math.h函数。我不知道realloc或calloc,我能做些什么来让它在nxn矩阵中打印出字符U,用户输入n。 (使用卡特的C书)
答案 0 :(得分:1)
编译警告:
warning: ‘U’ may be used uninitialized in this function [-Wuninitialized]
另请注意,sizeof(char)
始终为1
exit(EXIT_FAILURE)
失败时使用return 0
代替malloc
答案 1 :(得分:1)
for(i = 0; i<n; i++)
{
for(j = 0; j<n; j++)
{
board [i][j] = U;
}
}
应该是那样的
for(i = 0; i<n; i++)
{
for(j = 0; j<n; j++)
{
board [i][j] = 'U';
}
}
你缺少char的引号。