Closed Dunkan1 closed 5 years ago
Hola!
Como lo haces para imprimir lo que recibe el reduce? En específico me gustaría ver como imprimes las palabaras, mas que los números asociados.
Saludos!
Claro Este imprime en el main
printf("--------------------ENVIADO A REDUCE-----------------------\n");
lista_palabras** bli = (lista_palabras**) respuesta;
for(int k = 0; k < pid; k++){
bli[k] = (lista_palabras*) bli[k];
}
for(int j = 0; j < pid; j++){
for(int s = 0; s < bli[j]->n; s++){
printf("%s : %d\n", bli[j]->lista[s]->word, bli[j]->lista[s]->count);}
printf("\n");}
printf("----------------------------------------------------------\n");
Este para imprimir en el thread Map
for(int s = 0; s < lista_pal->n; s++){
printf("%s : %d\n", lista_pal->lista[s]->word, lista_pal->lista[s]->count);}
printf("\n");
printf("\n");
Bueno, con esto probablemente el problema sea de como estas asignando los punteros para los strings de cada palabra.
Intenta revisar como van quedando las palabras cada vez que recibes la información de un thread, ya que posiblemente estes sobreescribiendo los punteros de las palabras viejas con palabras nuevas.
Si esto no resuelve tu problema, porfavor envíame un mail (reschilling@uc.cl) para poder ayudarte presencialmente.
Saludos!
Gracias, era efectivamente lo que decias, se estaban sobreescribiendo los punteros
Hola, tengo un problema en la tarea cuando quiero almacenar la respuesta de multiples pthreads. Basicamente lo que ocurre es lo siguiente:
tengo los siguientes maps con sus listas de palabras
para almacenarlas hago
con respuesta
pero cuando imprimo la respuesta obtengo lo siguiente
como se puede ver los numeros y el largo de cada respuesta(9-10-10) se mantienen pero los strings cambian.
Alguien sabe porque podria ocurrir???