编译错误“从'int*'到'int'的转换无效[-fpermissive]”通常意味着您正在尝试将指针转换为整数类型。这是不允许的,因为指针和整数是不同的数据类型。以下是几种解决方法:
int *ptr = &someVariable; // 指针类型
int integer = (int)ptr; // 将指针转换为整数类型
&
操作符获取指针的地址值。int *ptr = &someVariable; // 指针类型
int integer = (int)&ptr; // 获取指针的地址值,无需转换为整数类型
检查错误原因:检查代码中是否存在其他类型错误,例如在赋值或函数调用时传递了错误的参数类型。修复这些错误可能会解决转换错误。
使用类型转换:如果您确实需要将指针转换为整数类型,可以使用reinterpret_cast
来进行类型转换。但是请注意,这是一种非常危险的操作,因为它会绕过类型系统的检查,并且可能引发未定义的行为。
int *ptr = &someVariable; // 指针类型
int integer = reinterpret_cast(ptr); // 使用reinterpret_cast进行指针到整数的转换
请注意,以上解决方法中的最佳方法取决于您的代码需求。在进行任何类型转换时,请确保了解其潜在的风险和后果,并尽可能避免使用不安全的转换操作。