Нарушение прав доступа при попытке отправить пакет с двойным указателем структур клиенту. C ++ Visual Studio

Клиентский процесс получает ошибку «Ошибка чтения доступа 0x00000004» при попытке доступа к данным из пакета, отправленного с сервера.

Пакет принимается очень хорошо и обрабатывается соответственно. Но я получаю сообщение об ошибке, когда пытаюсь получить доступ к двойному указателю, который находится в пакете.

Вот указатель:

CGameObject **playerListImage;

Вот где выдается ошибка:

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

Я знаю, что не так уж и много, но вот основное резюме.

Сервер отправляет мне пакет.
Я обрабатываю пакет соответственно. И все данные в пакете в порядке, за исключением двойного указателя.

ОДНАКО у меня есть поток клиента, работающий в том же процессе, что и поток сервера, и у этого клиента никогда не возникает проблем с двойным указателем.

Я предполагаю, что проблема как-то связана с нахождением в отдельных процессах. Но я в растерянности.

Заранее спасибо.

0

Решение

Похоже, проблема в том, что вы пытаетесь отправить указатель «по проводам». Вы не можете сделать это, указатель в одном процессе недопустим в другом процессе.

Так как похоже вы отправляете список игроков. Я не думаю, что у вас есть выбор, кроме как отправить каждого игрока отдельно, вместо того, чтобы пытаться отправить указатель всем игрокам.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector