Как передать структуру в качестве указателя? [C ++] - PullRequest
0 голосов
/ 28 июня 2011

У меня есть структура, которую я передаю через CreateThread

packetargs *args;
args->s=s;
args->buf=buf;
args->len=len;
args->flags=flags;
args->to=to;
args->tolen=tolen;
CreateThread(NULL,0,mThread,args,0,NULL);

Но когда я получаю ее в своей функции Thread, приложение вылетает (поскольку информация неверна):

DWORD WINAPI mThread(LPVOID args)
{
    packetargs *pargs = (packetargs *)args;

Как я должен передать структуру в качестве указателя, а затем снова создать ее в функции потока?

1 Ответ

4 голосов
/ 28 июня 2011

Вы забыли выделить память для своей структуры:

packetargs *args = new packetargs;

(Конечно, в какой-то момент вам понадобится delete).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...