invalid conversion from 'char' to 'char*' [-fpermissive]
时间: 2023-06-20 13:03:24 浏览: 138
这个错误通常出现在将一个字符类型的变量直接赋值给字符指针类型的变量时。这样做是不正确的,因为字符指针类型的变量需要存储字符数组的地址,而不是单个字符的值。你可以使用以下方法来解决这个问题:
1. 将字符类型的变量赋值给一个字符数组,然后再将该数组的地址赋值给字符指针类型的变量。
```
char c = 'a';
char str[2] = {c,'\0'};
char* ptr = str;
```
2. 将字符类型的变量强制转换为字符指针类型。
```
char c = 'a';
char* ptr = (char*)(&c);
```
需要注意的是,第二种方法可能会导致指针访问非法内存地址,因此应该谨慎使用。
相关问题
[Error] invalid conversion from void* to char** [-fpermissive]
这个错误通常是因为你在进行指针类型转换时,将一个void指针转换成char类型指针的时候出现的。由于void指针可以指向任何类型的内存地址,而char类型指针只能指向字符类型的内存地址,所以这样的转换是不安全的。
要解决这个问题,你可以尝试使用正确的类型进行指针转换,或者使用C++中的reinterpret_cast来进行类型转换。另外,你也可以检查一下你的代码,看看是否存在其他类型转换错误。
);//调用删除函数 显示26 19 D:\C语言\C语言课后作业\实验13.5.cpp [Error] invalid conversion from 'const char**' to 'char**' [-fpermissive]
这个错误是因为 `del_name` 函数的参数类型是 `char **`,表示一个指向指针数组的指针,而 `name` 数组的类型是 `const char *` 指针数组,表示一个指向只读字符串常量的指针数组,两者类型不匹配。
为了解决这个错误,你可以修改 `del_name` 函数的参数类型为 `const char **`,表示一个指向只读字符串常量的指针数组的指针,代码如下:
```
int del_name(const char **name, int n)
{
//...
}
```
这样修改后,编译器就不会再报错了。
阅读全文