我有下面的代码,我正在做一个整数指针到 void 指针的类型转换,并尝试分配 char 地址。
void main()
{
int *ptr;
char a = 10;
(void *)ptr = &a;
printf("%d\n", *ptr);
}
我遇到了以下错误,无论如何我可以解决这个问题吗?
error: lvalue required as left operand of assignment
(void *)ptr = &a;
最佳答案
对左值的转换是有效的,即 (void *)ptr
本身是有效的,但它不再是左值。这称为左值转换。
修复,正如@Joachim 评论的那样:
ptr = (int *) &a;
关于c - 是否不允许对操作的左值进行类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116881/