C++ 无法访问地址c++;

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

在gdb中,我得到一个“无法访问地址[]处的内存”程序,目前运行良好,但我不明白为什么不能正确访问它

-main.cpp

-player.h

我相信这些是相关的文件

    *(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
作为语法的任何原因?