0

客户端进程在尝试访问从服务器发送的数据包中的数据时收到“访问冲突读取位置 0x00000004”错误。

数据包被很好地接受并相应地处理。但是当我尝试访问数据包内的双指针时出现错误。

这是说的指针:

CGameObject **playerListImage;

这是引发错误的地方:

void CObjectManager::SetPlayerList(CGameObject **updatedList)
{
  for(int i=0; i < m_nPlayerCount; i++)
      m_pPlayerList[i] = updatedList[i];
}

我知道没有太多内容可以解决,但这里是基本的总结。

服务器向我发送了一个数据包。我相应地处理数据包。数据包中的所有数据都很好,除了双指针。

但是,我确实有一个客户端线程在与服务器线程相同的进程上运行,并且该客户端从不会对双指针有任何问题。

我假设问题与处于不同的进程有关。但我不知所措。

先感谢您。

4

1 回答 1

2

听起来问题在于您正在尝试“通过网络”发送指针。你不能这样做,一个进程中的指针在另一个进程中无效。

因为看起来您正在发送玩家列表。我认为您别无选择,只能分别发送每个玩家,而不是尝试向所有玩家发送指针。

于 2012-10-18T06:51:34.313 回答