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

标签 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;

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

最佳答案

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

packetargs *args = new packetargs;

(当然,您有时需要删除它。)

关于c++ - 如何将结构作为指针传递? [C++],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500199/

相关文章:

c++ - 如何在不同的类中使用 QNetworkAccessManager?类之间重要数据的一般共享?

java多线程isalive与否

c - 在 C 中实现双堆栈以在命令行上计算数学表达式。(段错误)

c++ - 为什么我的互斥量没有在我的其他线程锁定它之前锁定它?

c++ - 为什么1个元素的数组允许2k个元素?

c - 避免指针问题的最佳实践

c++ - 变量存储位置

c++ - 将 bool 和 int 的引用与 MSVC 2015 进行比较时发出警告

c++ - 绘制三角形不起作用 : I just see a black screen and my mouse

multithreading - 跨线程存储任意函数调用