74 29 C:\Users\86152\Documents\c语言(1)\通讯录.cpp [Error] ISO C++ forbids comparison between pointer and integer [-fpermissive]
时间: 2023-06-24 15:07:15 浏览: 165
这个错误是因为你在代码中进行了指针和整数之间的比较,而C++不允许这样的操作。可能是在if语句或while语句中出现了这样的问题。
解决方法:
1.检查代码中是否有指针和整数之间的比较。
2.如果确实需要进行这样的比较,可以将指针转换为整数类型后再进行比较。
例如:
```c++
if((int)ptr == 10){ //将指针转换为整数
//do something
}
```
3.或者使用指针运算代替指针和整数之间的比较。
例如:
```c++
int* ptr = new int[10];
for(int i=0;i<10;i++){
if(ptr+i == ptr+5){ //使用指针运算
//do something
}
}
```
希望以上解决方法能够帮到你。
相关问题
72 29 C:\Users\86152\Documents\c语言(1)\通讯录.cpp [Error] ISO C++ forbids comparison between pointer and integer [-fpermissive]
这个错误是因为你在代码中进行了指针和整数之间的比较,而这是不允许的。可能的原因是你在使用指针时没有正确地解引用它们,或者你的比较操作符的参数类型不匹配。
请检查代码中涉及到指针和整数比较的部分,并确保你正确地解引用了指针或者使用了合适的类型转换。如果问题仍然存在,请提供相关代码,我可以帮你进一步分析并解决问题。
79 34 C:\Users\86152\Documents\c语言(1)\通讯录.cpp [Error] ISO C++ forbids comparison between pointer and integer [-fpermissive]
这个错误通常出现在使用指针和整数进行比较操作时。在C++标准中,比较指针和整数是不被允许的。解决这个问题的方法是将指针转换为整数,然后再进行比较。
例如,如果你的代码中有这样的比较操作:
```
int* p = some_pointer;
if (p == 0) {
// do something
}
```
你可以将指针转换为整数:
```
int* p = some_pointer;
if ((intptr_t)p == 0) {
// do something
}
```
其中 `intptr_t` 是一个整数类型,在不同的平台上它的大小可能会有所不同,但它总是足够大以容纳一个指针。
阅读全文