如何修复整数到指针转换警告?


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 *

thousandchar *symbol[6]char.因此错误消息

不兼容的整数到指针的转换从"char"分配给"char *">

您应该根据需要将char *thousand更改为char thousandthousand = symbol [6];更改为thousand = symbol + 6。可能是第一个。

这里你声明了千作为字符指针,这意味着它可以存储字符变量的地址而不是字符本身。但是您正在尝试分配一千个字符。永远记住指针存储地址。

最新更新