繁体   English   中英

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

[英]How to pass a struct as a pointer? [C++]

我有一个通过 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);

但是当我在我的线程 function 中收到它时,它会使应用程序崩溃(因为信息错误):

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

我应该如何将结构作为指针传递,然后在线程 function 中再次创建它?

您忘记为您的结构分配任何 memory :

packetargs *args = new packetargs;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM