C++ 无法访问地址c++;
在gdb中,我得到一个“无法访问地址[]处的内存”程序,目前运行良好,但我不明白为什么不能正确访问它 -main.cpp -player.h 我相信这些是相关的文件C++ 无法访问地址c++;,c++,C++,在gdb中,我得到一个“无法访问地址[]处的内存”程序,目前运行良好,但我不明白为什么不能正确访问它 -main.cpp -player.h 我相信这些是相关的文件 *(playerNames+i) = (players+i) -> name; *(playerCards+i) = (players+i) -> hand; *(playerScores+i) = (players+i) -> score; 还有一些我不确定的台词。谢谢你的帮助 play
*(playerNames+i) = (players+i) -> name;
*(playerCards+i) = (players+i) -> hand;
*(playerScores+i) = (players+i) -> score;
还有一些我不确定的台词。谢谢你的帮助
playerNames = new string * [numPlayers];
playerNames
指向字符串指针数组。这意味着您已将内存分配给可以指向字符串对象的指针。到目前为止,数组中填充了一些垃圾地址
*(playerNames+i) = (players+i) -> name;
在这里,您取消引用时,out数组没有指向有效的字符串对象地址。在解引用之前,必须使每个数组索引指向有效的内存地址
for( int i=0; i<numPlayers; ++i )
playerNames[i] = new string();
for(int i=0;它没有足够的上下文来帮助您。您是否尝试过在调试器中调出它并四处查看?这些指针的值和i
的值是什么?还有,您不使用playerNames[i]=playerNames[i].name
作为语法的任何原因?