Código
/* Cabecera para hilo indeciso */ /* Argumento que se pasa al hilo indeciso */ /* Debe estar creado con malloc */ struct arg_ind { float finic; /* Fila inicial */ float cinic; /* Columna inicial */ int id; /* Identificador (numero sobre el vehiculo) */ id_grafi_t id_grafi; /* Identificador de graficos abiertos */ }; /* Funcion de arranque del hilo indeciso */ /* El argumento debe ser un puntero a una estructura arg_ind creada con malloc, que internamente se libera con free */ void *indeciso(void *p);
Código
/* Inicializador de la interfaz grafica */ /* Cabeceras */ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <pthread.h> #include <signal.h> #include "api_grafi.h" /* Interfaz grafica */ #include <sys/types.h> #include <unistd.h> #include <sys/wait.h> #include "indeciso_h.h" #include "api_grafi.h" /* Dimensiones y escala del grafico */ #define ESCALA_DIB 30 #define ALTO 10 #define ANCHO 10 int fondo[ALTO][ANCHO] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }; void *indeciso(void *p); int main(void) { id_grafi_t pgrafi; pthread_t Hilo[3]; int status; int *p; /* Cambio */ pgrafi = abrir_graficos("migrafi", 1); /* Fin cambio */ cambia_escala_id(ESCALA_DIB, pgrafi); crear_fondo_id(fondo[0], ANCHO, ALTO, pgrafi); cerrar_graficos(pgrafi, 0); for(int i=1;i<4;i++){ //Aquí es donde tengo problemas struct arg_ind ind=(i,i,i,pgrafi); p = ind; pthread_create(&Hilo[i-1],NULL, indeciso,(void*)p); } }