Buenas, me estoy haciendo un lio barbaro con los tipos en C. Estoy trabajando con strings y MPI. Necesito una variable que almacene un array de textos, en la que cada texto sería un array de strings, en el que cada string es un array de char...
Cada proceso worker necesita encontrar las 5 palabras que más aparecen en un texto. Hasta ahora lo que podría hacer es:
char palabrasQueMasAparecen[5][tamanioPalabra];
o bien:
char *palabrasQueMasAparecen[5];
for(int palabra=0; palabra<5; palabra++) {
palabrasQueMasAparecen
[palabra
] = (char *) malloc(sizeof(char) * tamanioPalabra
);}
El asunto es que necesito almacenar en una misma variable, las palabras que más aparecen de cada uno de los procesos. Entonces pensé en algo como:
char palabrasQueMasAparecen[cantProcesos][5][tamanioPalabra];
o bien:
char *palabrasQueMasAparecen[cantProcesos][5];
for(int proceso=0; proceso<5; proceso++) {
for(int palabra=0; palabra<5; palabra++) {
palabrasQueMasAparecen
[proceso
][palabra
] = (char *) malloc(sizeof(char) * tamanioPalabra
); }
}
El problema es que cada proceso tiene que enviar las 5 palabras que más usa al proceso maestro, a través de la función MPI_Send(), cuyo primer parámetro es la dirección de un buffer.
Como cada proceso debería enviar sus 5 palabras, yo pensé que cada uno debería enviar como primer parámetro de ésta función:
&palabrasQueMasAparecen[idProceso];
pero el programa está crasheando cuando lo quiero correr, y estoy seguro de que estoy usando mal los tipos, y estoy enviando mal el primer parámetro a dicha función... Necesitaría que me den una idea de como usar los tipos correctamente para resolver éste problema.
Muchas gracias desde ya!