invalid conversion from ‘CHAR’ {aka ‘char’} to ‘const char*’
时间: 2024-02-17 13:05:05 浏览: 26
这个错误提示是因为你在程序中将一个 char 类型的值直接赋值给了一个 const char* 类型的变量,导致类型不匹配。正确的做法是将 char 类型的值转换为 const char* 类型的字符串,可以使用 sprintf 函数或者 std::to_string 函数实现。例如:
```
char c = 'a';
const char* str = sprintf("%c", c); // 将 char 类型的值转换为字符串
```
相关问题
memcpy Compilation error: invalid conversion from 'char*' to 'const uint8_t*' {aka 'const unsigned char*'} [-fpermissive]
这个错误通常是因为您在使用 memcpy 函数时,源指针和目标指针的类型不匹配导致的。
memcpy 函数的第一个参数是 void* 类型的指针,第二个参数是 const void* 类型的指针。在这里,您需要将 char* 类型的源指针转换为 const void* 类型的指针。
您可以通过使用强制类型转换来解决这个问题,如下所示:
```
char* src = "hello";
uint8_t dst[10];
memcpy((void*)dst, (const void*)src, strlen(src)+1);
```
在这个例子中,我们使用了强制类型转换将 char* 类型的 src 源指针转换为 const void* 类型的指针。这样就可以避免编译错误。
请注意,强制类型转换可能会导致类型不匹配的问题,因此在使用时需要谨慎。
[Error] invalid conversion from 'VertexType {aka char}' to 'const char*' [-fpermissive]
这个错误通常是由于类型不匹配引起的。C++是一种强类型语言,不同的数据类型之间不能随意转换。
在这种情况下,编译器提示你将一个char类型的变量转换为const char*类型的指针。这通常是由于你在函数调用或赋值时将char类型的变量传递给了一个需要const char*类型参数的函数或变量。你需要检查你的代码,并确保你的变量类型匹配。
如果你确实需要将一个char类型的变量转换为const char*类型的指针,你可以使用一个C++字符串来包装它,并使用c_str()函数获取指向底层字符数组的指针。例如:
```
char c = 'a';
string s(1, c); // 将char类型的变量c转换为字符串s
const char* p = s.c_str(); // 获取指向底层字符数组的指针p
```
需要注意的是,在使用c_str()函数获取指针后,你不能修改指针所指向的字符数组。否则,将会导致未定义的行为。