Programación del nivel mta
¿Código información_t* información? =(Info _ t *)malloc(sizeof(Info _ t));Solo se crea un mensaje.
pthread_create(& threads[i], NULL, calMatrix, (void *)info tres hilos usan el mismo
Cambié tu código:
#¿Contiene? ltstdio.h gt
#¿Contiene? ltstdlib.h gt
#¿Incluir? ltpthread.h gt
int? mtc[3]? =?{?0?};? //?¿resultado? matriz
typedef? Estructura
{
int? Broma;
int? *mta?
int? *Bicicleta de montaña;
} Info_t;
¿nulo*? calMatrix(void*?arg)
{
int? Yo;
¿Info_t? *¿información? =?(Info_t?*)arg;
int? ¿Travesura? =?info-gt;broma;
fprintf(stdout, "calMatrix?:?¿broma? Sí?d\n",broma);
Para (yo? =? 0 ;? yo? 3;? yo )
mtc? =?info-gt;mta[i]? *?Información - gt;MTB[I];
¿Volver? NULL
}
int? main(int? argc, char? **argv)
{
int? Yo,j,k? =?0;
int? MTA[3][3];
int? mtb[3]? =?{?1?};
Info_t? *¿información? =?(Info_t?*)malloc(sizeof(Info_t)* 3);
Para (i?=?0;?i?lt?3;?i)
Para (j?=?0;?j?lt?3;?j)
mta[i][j]? =?k;
/*?3?Hilo? */
pthread_t? *¿Hilo? =?(pthread_t?*)malloc(sizeof(pthread_t)* 3);
fprintf(stdout, "\n"); fflush(stdout);
Para (i? =?0;?lt?i)
Información[i]. ¿Travesura? =?I;
Información[i]. ¿mta? =?MTA[I];
Información[i].
¿Bicicleta de montaña? =?Bicicleta de montaña;
pthread_create(amp; threads[i], NULL, calMatrix, (void?*)(amp; info[I]));
} p>
For (i?=?0;?i?lt?3;?i)
pthread_join(threads[i], NULL);
fprintf (stdout , " \n====? ¿Eso? ¿Matriz? ¿Resultado? = = = = \n \n "
fflush(stdout
For (i ? = ? 0; ? yo )
{
fprintf(salida estándar, [I]);
fflush(salida estándar);
}
¿Volver? 0;
}Olvidé los cálculos matriciales. Ejecútelo y vea si los resultados son correctos.