我正在尝试创建一个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 ++而且我无法理解为什么我会收到此错误。在互联网上搜索了几个小时的答案,仍然找不到任何东西。如果我不清楚我道歉,请告诉我我一直不清楚的事情。
谢谢!
答案 0 :(得分:3)
您正在尝试创建一个char指针数组,这意味着您应该使用:
char** re = new (char*)[limit];
但是,您可能需要考虑使用C ++的一些非C方面,例如向量 - 您会发现您的工作效率会大大提高。
答案 1 :(得分:0)
左手操作与右手操作不匹配。
因此,如果您想使用数组,您可以使用如下所示的示例:
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