无法从char***转换为char**
Cannot convert from char*** to char**
我试图创建一个包含从文件中读取的一些字符串的字符**,但当我试图创建它时,我收到一个错误,说:
error C2440: 'initializing' : cannot convert from 'char ***' to 'char **'
`
Portion of code with the error:
//limit defined above this
char** re = new (char**)[limit]; <---------- Error
for(int x = 0; x<limit;x++) {
re[x]=(char*)stringsfromfile[x].c_str();
}
我编写c++的时间很短,我不明白为什么会出现这个错误。在互联网上搜索了几个小时,仍然找不到任何答案。如果我不清楚,我道歉,请告诉我我不清楚的地方。
谢谢!
您正试图创建一个字符指针数组,这意味着您应该使用:
char** re = new (char*)[limit];
然而,您可能需要考虑接受C++的一些非C方面,例如向量——您会发现您的生产力大大提高。
左手操作与右手操作不匹配。
-
左手:char双指针
右手:的char双指针一个数组(产生第三个指针)
所以,如果你想使用数组,你可以使用下面的例子:
char **re = (char *[]){ "New Game", "Continue Game", "Exit" };
但是,选择只能用于线性寻址。例如:
printf ("%s", &(*re)[0]); outputs: New Game
printf ("%s", &(*re)[1]); outputs: ew Game
printf ("%s", &(*re)[9]); outputs: Continue Game
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 将函数参数"const char*"转换为"std::string_view"是
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- C++:将模板类型 char 转换为 std::string
- strcmp/char* 转换无法按预期工作
- C++中的SQLite char*转换
- 无法从 const char* 转换为 const char *&
- 在 C++ 中将 char 转换为 int,而无需符号位传播
- 如果必须包含西里尔字符,如何将 char* 转换为 std::string?
- 试图使用strCMP时的char转换错误
- 无法从'const char *'转换为'LPCTSTR'
- 将 std::vector<char> 转换为字符* 会导致字符缺陷
- 使用 static_cast 将 char 转换为 int c++
- 如何在 C++(MFC) 中将 char* 转换为 LPCTSTR
- 无法将const char转换为字符串构造字符串