Françis
L'erreur provient du simple fait que la variable locale servant à faire
le cumul ( i.e. la somme ) dans la fonction
sommeTableau() n'a pas
été
initialisée à 0 au début. Donc le calcul se fait au départ avec une
valeur parasite ( du garbage ) car le C n'initialise pas les variables
automatiquement à zéro.
Il suffit donc de faire :
long resultat=0;
Pour information, il n'y a aucun intérêt à utiliser une variable locale
somme dans
main().
Il vaut mieux aussi utiliser le spécificateur de format
%ld au lieu de
%d.
// Somme de membres du tableau.
#include <stdio.h>
#include <stdlib.h>
long sommeTableau(long tableau[], long tailleTableau);
int main(){
long tableau[4] = {1,2,3,4};
printf("%ld\n", sommeTableau(tableau,4));
system("Pause");
return 0;
}
long sommeTableau(long tableau[], long tailleTableau){
long resultat=0;
int i;
for(i = 0; i < tailleTableau; i++)resultat += *(tableau+i);
return resultat;
}
@lpf