我正在開發一個項目,我需要讓程序在多個線程上運行。但是,我遇到了一些問題。多線程(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