Итак, я новичок в концепции массивов и очень новичок в концепции функций. Прямо сейчас я пытаюсь создать массив 3 x 3 со всеми «_», который позже можно изменить с помощью других функций. Это код, который у меня есть на данный момент:
#include<stdio.h>
#define SIZE 3
void clear_table(char ary[SIZE][SIZE])
{
for(int i = 0; i < SIZE; i++)
{
for( int j = 0; j < SIZE; j++)
{
ary[i][j] = "_";
}
}
}
void display_table(char ary[SIZE][SIZE])
{
for( int i = 0; i < SIZE; i++)
{
for( int j = 0; j < SIZE; j++)
{
printf("%c", ary[i][j]);
}
printf("\n");
}
}
int main ()
{
//Declare the tic-tac-toe board
char board[SIZE][SIZE];
//The row and column of the move for either player 1 or 2
int row, col;
//Clear the table
clear_table(board);
//Display the table
display_table(board);
return 0;
}
Но я получаю ошибку с этим кодом:
warning: assignment makes integer from pointer without a cast [-Wint-conversion]
ary[i][j] = "_";
И когда я запускаю программу, я получаю:
$$$
$$$
$$$
Вместо:
_ _ _
_ _ _
_ _ _
Может ли кто-нибудь помочь мне разобраться в этой ошибке?
См .: Одиночные кавычки против двойных кавычек в C или C++
вау, это быстрое решение, спасибо. Следует ли мне удалить этот пост, поскольку это была всего лишь опечатка?





В строке 14 вы используете ary[i][j] = "_";
Вместо этого используйте ary[i][j] = '_';.
Первоначально вы назначаете нить, тогда как вам нужно персонаж
Вероятно, вы захотите использовать одинарные кавычки:
ary[i][j] = "_";->ary[i][j] = '_';.