尝试将常量字符 [] static_cast<>为无符号字符 * 时出错
Error when attempting to static_cast<> const char[] to unsigned char *
我想把const char[]
投到unsigned char *
。
我正在使用C++转换(即:static_cast
(:
unsigned char * txt = static_cast<unsigned char *>("AC");
当我构建应用程序时,出现以下错误:
错误:从类型"常量字符 [3]"到类型"无符号字符 *"的无效static_cast
当我使用 C 类似强制转换时:
unsigned char * txt = (unsigned char *)"AC";
我没有收到任何编译错误,程序运行良好。
我必须使用C++强制转换来避免任何运行时错误。如何使用C++转换将const char [3]
转换为unsigned char *
?
unsigned char*
和const char[]
是不相关的类型,因此static_cast<>
不起作用。而且恒常性是不同的,因此需要const_cast<>
。
正确的演员表:
unsigned char* txt = reinterpret_cast<unsigned char*>(const_cast<char*>("AC"));
请注意,您无法通过该unsigned char* txt
指针进行写入,因为C++字符串文字(此处为"AC"(是不可变的,并且通常存储在只读内存中。
请参阅const_cast<>
:
通过非常量访问路径修改 const 对象并通过非 const glvalue 引用易失性对象会导致未定义的行为。
相关文章:
- 分段 使用 MPI_Gather 收集字符数组时出错
- 将常量字符* 转换为字符时出错
- 读取字符串C++的字符时出错
- 为什么常量字符*到常量字符转换出错?
- 读取字符串字符时出错 - 对于数组中的字符串值
- 通过字符串::插入插入字符时出错
- 读取字符串字符时出错
- 计算字符串中字符的出现次数时出错
- C++ 使用 Strtok 读取字符串字符时出错
- C++:使用 fgets() 读取字符输入时出错
- C ++ ifstream 无法读取字符串,并且在读取字符时出错
- 尝试将常量字符 [] static_cast<>为无符号字符 * 时出错
- 从字符串中读取字符时出错
- 英特尔 TBB,parallel_pipeline,当我在阶段之间传递常量字符*时出错
- 转换(常量字符*)变量出错
- 为什么我从字符转换为字符时出错
- 读取字符串C++的字符时出错
- wcscpy_s后读取字符串字符时出错
- 读取字符串 的字符时出错.分配内存
- C++字符出错