我似乎无法打印出字符类型矩阵

时间:2013-11-04 21:12:02

标签: c arrays loops matrix malloc

#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书)

2 个答案:

答案 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的引号。