我正在开发一个项目,我需要让程序在多个线程上运行。但是,我遇到了一些问题。多线程(pthreads)
在我的程序中,我有一个称为'func_call'的附件功能。 如果我用这个在我的代码:
func_call((void*) &my_pixels);
程序运行正常。
但是,如果我尝试创建一个线程,然后运行该函数,程序将运行到一个分段错误。
pthread_t thread;
pthread_create (&thread, NULL, (void*)&func_call, (void*) &my_pixels);
我在我的程序中包含了pthread.h。任何想法可能是错误的?
有点难以从这里给出的小碎片中分辨出来,但是my_pixels参数超出了范围,然后它所占用的内存正在被一些其他值导致随机指针值覆盖 – Nick 2012-03-11 01:06:31
my_pixels是结构体的一个实例与我需要发送该函数的变量。在调用pthread之前,我在main函数中初始化了struct和它的变量。一旦程序进入func_call函数,它将在本地保存变量。 – user1261711 2012-03-11 01:09:11
@user:my_pixels的寿命是多少? 'func_call'如何使用线程参数?主线程和'func_call'之间是否有同步?请显示代码;一个解释不会提供所有相关的细节。 – 2012-03-11 01:18:00