提问人:Rupam Karmakar 提问时间:9/26/2023 最后编辑:chqrlieRupam Karmakar 更新时间:9/26/2023 访问量:63
strcpy() 显示不兼容的整数到指针转换
strcpy() showing incompatible integer to pointer conversion
问:
char arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
char var;
// Asking input from user
for (int l = 0; l < 3; l++)
{
for (int k = 1; k < 3; k++)
{
if (k % 2 != 0)
{
var = get_int("Enter position for x: ");
strcpy(arr[l][k], "x");
}
else
{
var = get_int("Enter position for o: ");
strcpy(arr[l][k], "o");
}
design(var, arr);
}
}
arrays/ $ make tictactoe
tictactoe.c:20:24: error: incompatible integer to pointer conversion passing 'char' to parameter of type 'char *'; take the address with & [-Werror,-Wint-conversion]
strcpy(arr[l][k], "x");
^~~~~~~~~
&
/usr/include/string.h:141:39: note: passing argument to parameter '__dest' here
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 errors generated.
make: *** [<builtin>: tictactoe] Error 1
答:
4赞
ikegami
9/26/2023
#1
arr
定义为 ,因此是 。char arr[3][3]
arr[l][k]
char
strcpy
需要 a ,指向 的指针,更具体地说,是指向它将复制字符串的一系列中的第一个的指针(以 NUL 结尾的值序列)。char *
char
char
char
看起来你想要.arr[l][k] = 'x';
其他问题:
- 以这种方式启动真的有意义吗?
arr
- 如果是水平偏移量,为什么要用它来确定是否或应该使用?
k
x
o
- 为什么不在任何地方使用?
var
- 你为什么要尝试遍历每个位置?
- 为什么在这样做时跳过第一列?
上一个:字符数组应该如何用作字符串?
评论
arr[l][k]
has type ,而其第一个参数需要 a。它们是不兼容的类型。char
strcpy
char *
arr
arr[l][k] = 'x';
strcpy()
strcpy()