pthread_create传结构体参数问题

问题:最后输出的x,y,z不是传入的1,2,3 ,问题出在哪里?
代码如下:

typedef __iconflash {
int x;
int y;
int z;

} iconflash;

pthread__t thread;
iconflash if;
if.x = 1;
if.y = 2;
if.z = 3;
pthread(&thread,NULL,flashmethod,&if);


void flashmethod(void *data) {
iconflash *if = (iconflash *)data;
printf("ifx=%d,ify=%d,ifz=%d\n",if->x,if->y,if->z);
}

1个回答

if是栈上数据。可能被释放。用new分配到堆上数据

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!