int main() {
int n, b, i, j;
char *thousand;
//char a;
char symbol [] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};
printf("Enter an integer between 0 and 10000: ");
scanf("%d",&n);
if( n >= 1000)
{
b = n / 1000;
for(i = 0; i < b; i++){
for (j = 0; j < i; j++)
{
thousand = symbol [6];
}
}
}
printf("%s",thousand);
return 0;
}
这是我收到的错误:
不兼容的整数到指针转换从"char"分配给"char *";使用&[-Wint-conversion]获取地址
变量thousand
声明为:
char *thousand;
在这一行中:
thousand = symbol [6];
thousand
,这是一个从symbol[6]
赋值的char *
, 声明为:
char symbol []
因此错误:
...conversion assigning to 'char *' from 'char'...
因为symbol[6]
是char
,不是char *
。
thousand
char *
。symbol[6]
char
.因此错误消息
不兼容的整数到指针的转换从"char"分配给"char *">
您应该根据需要将char *thousand
更改为char thousand
或thousand = symbol [6];
更改为thousand = symbol + 6
。可能是第一个。
这里你声明了千作为字符指针,这意味着它可以存储字符变量的地址而不是字符本身。但是您正在尝试分配一千个字符。永远记住指针存储地址。