如何使malloced 2D阵列在打印时不显示任何内容?

如何使malloced 2D阵列在打印时不显示任何内容?,c,arrays,malloc,C,Arrays,Malloc,我正在做一个Tic-Tac-Toe游戏,并且有一个用于网格3x3的malloced 2D字符数组 我测试打印了数组中的值,得到0。我计划在阵列输出周围创建一个网格,但要使其工作,输出必须为空,而不是0。请帮助我,我希望输出为零 /*Malloced Array*/ array = (char**)malloc(sizeof(char) * row); for(ii = 0; ii < row; ii++) { arraySec = (char*)malloc(sizeof(ch

我正在做一个Tic-Tac-Toe游戏,并且有一个用于网格3x3的malloced 2D字符数组

我测试打印了数组中的值,得到0。我计划在阵列输出周围创建一个网格,但要使其工作,输出必须为空,而不是0。请帮助我,我希望输出为零

/*Malloced Array*/

array = (char**)malloc(sizeof(char) * row);

for(ii = 0; ii < row; ii++)
{
    arraySec = (char*)malloc(sizeof(char) * col);
    array[ii] = arraySec;
}

/*Test Print*/
for(ii = 0; ii < row; ii++)
{
    for(jj = 0; jj < col; jj++)
    {
        printf("\n%d:%d = %d", ii, jj, array[ii][jj]);
    }
}

好的,如果你想打印一个“空格”字符,也就是说,没有显示任何尚未“使用”的网格位置,也就是说,其中有一个O或X,那么你需要在代码中添加/更改两件事

首先,需要将数组初始化为空白字符:

for(ii = 0; ii < row; ii++) {
    for(jj = 0; jj < col; jj++) {
        array[ii][jj] = ' '; // Set to the blank (space) character
    }
}
然后,在测试打印中,您需要将字符输出为字符,而不是数字或整数:

for(ii = 0; ii < row; ii++) {
    for(jj = 0; jj < col; jj++) {
        printf("\n%d:%d = %c", ii, jj, array[ii][jj]); // %c will print the character as such, but you won't see it!
    }
}

当你说你希望输出为“无”时,你实际上是什么意思?你想要一个空白字符输出吗?是的,类似的,它可以是空的,空白。就在打印出来的时候,它不能出现在屏幕上。但是,如果我将X或O的字符放在数组中,我希望改为显示该字符。由于某些原因,malloc默认为“0”。我可以将空字符串“”作为每个数组元素吗?或者有比硬编码更好的方法吗?完全正确-请参阅答案!
for(ii = 0; ii < row; ii++) {
    for(jj = 0; jj < col; jj++) {
        printf("\n%d:%d = %c", ii, jj, array[ii][jj]); // %c will print the character as such, but you won't see it!
    }
}