我有這樣的警告「警告:分配從兼容的指針類型 」在這一行:指針結構/線程內
data1->transformed_block[l] = &transformed_block[l];
-
void print_message_function (void *ptr)
{
dt *data;
data = (dt *) ptr;
printf("Dentro da thread Numero0: %ld\n", data->L_norm_NewBlock);
pthread_exit(0);
}
typedef struct data_thread
{
long L_norm_NewBlock;
int Bsize_X;
int Bsize_Y;
int *transformed_block[MAX_LEVEL];
long L_norm_OrigBlock;
} dt;
void function()
{
int *transformed_block[MAX_LEVEL];
pthread_t thread1;
dt *data1;
pthread_attr_t attr;
pthread_attr_init(&attr);
//Fills structure
data1 = (dt *) malloc(sizeof(dt));
data1->transformed_block[l] = &transformed_block[l];
data1->L_norm_NewBlock=0;
data1->Bsize_Y = Bsize_Y;
data1->Bsize_X = Bsize_X;
pthread_create(&thread1, &attr, (void *) &print_message_function, (void *) &data1);
}
我想擺脫該警告以及我在線程中獲得的值都是錯誤的。例如data1-> L_norm_NewBlock = 0;在線程中引導我一個不同的值(不是0應該是這樣)。
請使用** {} **按鈕格式化您的代碼。 – Rod 2010-12-23 16:35:00
我無法知道其中transformed_block(不在結構中的那個)被聲明。這是全球性的嗎?它是什麼類型? – 2010-12-23 16:40:36