У меня есть это предупреждение "предупреждение: назначение из несовместимого типа указателя" в этой строке:
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, как должно быть).