<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr">Try init tab_indice and tab_taille to NULL (it does not matter that it is initialized for non-root, but the compiler likely isn't smart enough to tell)</div><div class="gmail_extra"><br><div class="gmail_quote">2014-11-15 12:38 GMT-08:00 Chafik sanaa <span dir="ltr"><<a href="mailto:san.chafik@gmail.com" target="_blank">san.chafik@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">when i running the following program, i have this error (</span><font face="arial, sans-serif">error C4703: variable de pointeur locale potentiellement non initialisée 'tab_indice' utilisée <span style="white-space:pre-wrap">and error C4703: variable de pointeur locale potentiellement non initialisée 'tab_taille' utilisée </span></font><span style="font-family:arial,sans-serif">):</span><div><span style="font-family:arial,sans-serif">program:</span></div><div><div><font face="arial, sans-serif">/////////////////////////////////////////////</font></div><div><font face="arial, sans-serif">//<span style="white-space:pre-wrap">      </span>MPI_Scatterv.c</font></div><div><font face="arial, sans-serif">//  test de la fonction MPI_Scatterv</font></div><div><font face="arial, sans-serif">/////////////////////////////////////////////</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">#include <stdio.h></font></div><div><font face="arial, sans-serif">#include <stdlib.h></font></div><div><font face="arial, sans-serif">#include <mpi.h></font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">#define DIMENSION 10</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">int main(int argc, char** argv)</font></div><div><font face="arial, sans-serif">{</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">       </span>int myrank, i, n_procs;</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">      </span>int * sendbuf;      //buffer à disperser</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">     </span>int * tab_indice;   //indice de début de chaque subdivision</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">    </span>int * tab_taille;   //nombre d'éléments à envoyer</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">    </span>// pour chaque processus</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">     </span>int * rbuf;         //buffer de reception</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">        </span>int taille;         //taille de la partie reçue</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">    </span>//Initialisation de MPI</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">      </span>MPI_Init(&argc, &argv);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">      </span>MPI_Comm_size(MPI_COMM_WORLD, &n_procs);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap"> </span>MPI_Comm_rank(MPI_COMM_WORLD, &myrank);</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">     </span>if (myrank == 0) {</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">           </span>//allocation mémoire</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                </span>sendbuf = (int *)malloc(n_procs*DIMENSION*sizeof(int));</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">              </span>tab_indice = (int *)malloc(n_procs*sizeof(int));</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">             </span>tab_taille = (int *)malloc(n_procs*sizeof(int));</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">             </span>//remplissage du buffer à disperser</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">         </span>for (i = 0; i<n_procs*DIMENSION; i++) sendbuf[i] = i;</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">             </span>//initialisation des subdivisions</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">            </span>for (i = 0; i<n_procs; i++){</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                      </span>//nombre d'éléments à envoyer</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                     </span>tab_taille[i] = DIMENSION - i;</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                       </span>//indice de début du processus i </font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                      </span>// = celui de i-1 + nombre d'éléments</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                  </span>// envoyés par i-1</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                  </span>if (i != 0) tab_indice[i] = tab_indice[i - 1] + tab_taille[i - 1];</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">                       </span>else tab_indice[i] = 0;</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">              </span>}</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">    </span>}</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">       </span>//communication de la taille de la partie reçue à chaque processus</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap"> </span>MPI_Scatter(tab_taille, 1, MPI_INT, &taille, 1, MPI_INT, 0, MPI_COMM_WORLD);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">     </span>//allocation du buffer de reception</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">  </span>rbuf = (int *)malloc(taille*sizeof(int));</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">       </span>//dispersion</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap"> </span>MPI_Scatterv(&sendbuf, tab_taille, tab_indice, MPI_INT, rbuf,</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">            </span>DIMENSION, MPI_INT, 0, MPI_COMM_WORLD);</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap"> </span>//affichage</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">  </span>printf("processus %d : [ ", myrank);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">       </span>for (i = 0; i<taille; i++) printf("%d ", rbuf[i]);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">      </span>printf("]\n");</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">        </span>//desallocation mémoire</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">     </span>free(rbuf);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">  </span>if (myrank == 0) {</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">           </span>free(sendbuf);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">               </span>free(tab_indice);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">            </span>free(tab_taille);</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">    </span>}</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">       </span>MPI_Finalize();</font></div><div><font face="arial, sans-serif"><span style="white-space:pre-wrap">      </span>exit(EXIT_SUCCESS);</font></div><div><font face="arial, sans-serif">}</font></div></div></div>
<br>_______________________________________________<br>
discuss mailing list     <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>
To manage subscription options or unsubscribe:<br>
<a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br></blockquote></div><br></div>