C++ 访问头文件中的数组指针?

C++ 访问头文件中的数组指针?,c++,networking,sdl,sdl-net,C++,Networking,Sdl,Sdl Net,通过尝试访问“clientArray”中的TCPSocket,我得到了一个访问冲突错误。我如何正确访问它 我的头文件包含TCPSocket*clientArray public: TCPsocket *clientArray; SDLNet_SocketSet aSocketSet; bool serverOn; 它是在我的构造函数中定义的: clientArray = new TCPsocket[maxsockets]; aSocketSet = SDLNet_AllocSocketSet(

通过尝试访问“clientArray”中的TCPSocket,我得到了一个访问冲突错误。我如何正确访问它

我的头文件包含TCPSocket*clientArray

public:
TCPsocket *clientArray;
SDLNet_SocketSet aSocketSet;
bool serverOn;
它是在我的构造函数中定义的:

clientArray = new TCPsocket[maxsockets];
aSocketSet = SDLNet_AllocSocketSet(maxsockets);
它可以在我的另一个功能中访问(在这里工作没有问题):

我正在从游戏的更新函数调用有问题的函数,如下所示:

void Game::Update(){
   while (g_playersConnected == 2)
   {
        printGrid();
        serverSocket->waitForPlayer((playerTurn-1));
        changeTurn();
        system("pause");
   }
    //cout << "Game's Update is running" << endl;
};
我应该朝哪个方向解决这个问题


最好的

您是否检查了
playerNum
是否小于
maxsockets
?您的构造函数、赋值运算符和析构函数是什么样子的?请用代码编辑您的问题,而不是将其作为注释发布。您是否定义了析构函数、复制构造函数和复制赋值运算符?还有,在“以后…”之前的过渡期间发生了什么。在此期间,通过复制等方式,您的数据可能发生了许多事情。请尝试用一个非常小的示例重现您的问题,您甚至可能自己发现问题:-)我认为获取和使用调试器是最后一个问题的最佳答案。它应该能够在SEGFULT上断开,然后告诉您实际原因,并从那里开始。您是否检查了
playerNum
是否小于
maxsockets
?您的构造函数、赋值运算符、,析构函数是什么样子的?请用代码编辑您的问题,而不是将其作为注释发布。您是否定义了析构函数、复制构造函数、复制赋值运算符?还有,在“以后…”之前的过渡期间发生了什么。在此期间,通过复制等方式,您的数据可能发生了许多事情。请尝试用一个非常小的示例重现您的问题,您甚至可能自己发现问题:-)我认为获取和使用调试器是最后一个问题的最佳答案。它应该能够在segfault上断开,然后告诉您实际原因,并从那里开始。
Unhandled exception at 0x00AED839 in Server.exe: 0xC0000005: Access violation reading location 0x0000000C.
void Game::Update(){
   while (g_playersConnected == 2)
   {
        printGrid();
        serverSocket->waitForPlayer((playerTurn-1));
        changeTurn();
        system("pause");
   }
    //cout << "Game's Update is running" << endl;
};
void ServerSocket::waitForPlayer(int playerNum)
{
    cout << "Waiting for player " << playerNum + 1 << " (In array : " <<     playerNum << ")." << endl;
    char text[10];
    SDLNet_TCP_Recv(clientArray[playerNum], text, 10);
    std::cout << "received text = " << text << endl;
    interpretData(text);
}
 ServerSocket::~ServerSocket(){}