У меня проблемы с передачей аргументов, используется структура, содержащая другую структуру
Я знаю, что что-то не так с тем, как я использую структуры, но я просто не вижу, где ...
Спасибо!
это моя структура
typedef struct {
IMAGE *imagenfte;
IMAGE *imagendst;
}thread_data;
//thread_data *data = (thread_data *) malloc(sizeof(thread_data));
это другая структура
typedef struct {
HEADER header;
INFOHEADER infoheader;
PIXEL *pixel;
} IMAGE;
IMAGE imagenfte,imagendst;
это моя функция потока
void *processBMP2(void *argumentos)
{
thread_data *my_data;
my_data = (thread_data *) (argumentos);
IMAGE *imagefte, *imagedst;
imagefte = my_data->imagenfte;
imagedst = my_data->imagendst;
free(my_data);
int i,j;
int count=0;
PIXEL *pfte,*pdst;
PIXEL *v0,*v1,*v2,*v3,*v4,*v5,*v6,*v7;
int imageRows,imageCols;
memcpy(imagedst,imagefte,sizeof(IMAGE)-sizeof(PIXEL *));
imageRows = imagefte->infoheader.rows;
imageCols = imagefte->infoheader.cols;
imagedst->pixel=(PIXEL *)malloc(sizeof(PIXEL)*imageRows*imageCols);
...
и так я создаю поток и передаю аргументы де
pthread_t hilo;
thread_data *my_data = (thread_data *) malloc(sizeof(thread_data));
my_data->imagenfte = &imagenfte;
my_data->imagendst = &imagendst;
pthread_create(&hilo,NULL, processBMP2, my_data);
//processBMP(&imagenfte,&imagendst);