如何将结构作为指针传递? [C ++]

时间:2011-06-27 23:49:29

标签: c++ multithreading pointers

我有一个结构,我正在通过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 个答案:

答案 0 :(得分:4)

您忘记为结构分配任何内存:

packetargs *args = new packetargs;

(当然,您需要在某个时候delete。)