C++ 无法从字符***转换为字符*****
我正在尝试创建一个包含从文件中读取的字符串的字符**,但当我尝试创建它时,会出现一个错误,提示:C++ 无法从字符***转换为字符*****,c++,arrays,char,C++,Arrays,Char,我正在尝试创建一个包含从文件中读取的字符串的字符**,但当我尝试创建它时,会出现一个错误,提示: error C2440: 'initializing' : cannot convert from 'char ***' to 'char **' ` 出现错误的代码部分: //在此基础上定义的限制 字符**re=新(字符**)[限制] 您正在尝试创建一个字符指针数组,这意味着您应该使用: char** re = new (char*)[limit]; 但是,你可能想考虑C++中的一些非C方面,
error C2440: 'initializing' : cannot convert from 'char ***' to 'char **'
`
出现错误的代码部分:
//在此基础上定义的限制
字符**re=新(字符**)[限制] 您正在尝试创建一个字符指针数组,这意味着您应该使用:
char** re = new (char*)[limit];
但是,你可能想考虑C++中的一些非C方面,比如向量——你会发现你的生产率大大提高。
< p>你试图创建一个字符指针数组,这意味着你应该使用:
char** re = new (char*)[limit];
然而,你可能会考虑拥抱C++的一些非C方面,比如向量——你会发现你的生产力大大提高。
< P>左手操作和右手操作之间存在着不匹配。
- 左手:字符双指针
右侧:字符的双指针
数组(产生第三个指针)
因此,如果您想使用数组,可以使用下面给出的示例:
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 **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
您可能应该使用std::string
而不是char
new(char**)[limit]
正在创建指向数组指针的新char
指针。这是三个层次的指针,而不是像char**
中的两个。Duplicate@Bmize729,我能看到的与另一个问题的唯一相似之处是单词cannot
,“concert
,from
和to
:-)这是一个完全不同的问题,使用“
而不是”
复制字符时。@Anycorn我稍后会将其转换为字符串,但由于某种原因,如果我尝试返回字符串*,visual studio会给我一个错误(搜索错误,显然DLL无法导出返回字符串*的函数。不知道为什么)无论如何,谢谢。您可能应该使用std::string
而不是char
new(char**)[limit]
正在创建指向数组指针的新char
指针。这是三个层次的指针,而不是像char**
中的两个。Duplicate@Bmize729,我能看到的与另一个问题的唯一相似之处是单词cannot
,“concert
,from
和to
:-)这是一个完全不同的问题,使用“
而不是”
复制字符时。@Anycorn我稍后会将其转换为字符串,但由于某种原因,如果我尝试返回字符串*,visual studio会给我一个错误(搜索到的错误,显然DLL无法导出返回字符串*的函数。不知道为什么)。无论如何,谢谢。只要尝试一下,它就成功了。我确实考虑过使用向量,但我仍在试图找出如何使用Itter来完成它们。谢谢@LucasS,你不必使用迭代器(尽管它们很方便)。使用vec[idx]
,您可以像数组一样对向量进行索引,因为它内置了操作符[]
。只要尝试一下,就可以了。我确实考虑过使用向量,但我仍在试图找出如何使用Itter来完成它们。谢谢@LucasS,你不必使用迭代器(尽管它们很方便)。使用vec[idx]
可以像数组一样对向量进行索引,因为它内置了操作符[]
。