Bonsoir.

Je passe un tableau de 10 valeurs à une fonction qui calcule la moyenne des valeurs. Le programme fonctionne bien, mais le débugger, non. En effet, d'après la fenêtre watch du débugger, le tableau passé à la fonction ne comporte qu'une valeur (au lieu des 10 du programme appelant).

Code ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
/---------------------------------------------------------------------------
// Passing an array to a function
 
#include <vcl.h>
#pragma hdrstop
#include <iostream>
//---------------------------------------------------------------------------
 
#pragma argsused
 
using namespace std;
 
//Function prototype
double average(double array[], int count);
 
int main(int argc, char* argv[])
{
	double values[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 };
	cout << endl
		 << "Average = "
		<< average(values, (sizeof values)/(sizeof values[0]));
	cout << endl;
 
	return 0;
}
//---------------------------------------------------------------------------
 
// Function to compute an average
double average(double array[], int count)
{
   double sum = 0.0;                 // Accumulate total in here
   for(int i = 0; i<count; i++)
	  sum += array[i];               // Sum array elements
   return sum/count;                 // Return average
}
Avez-vous déjà rencontré ce problème?
Je précise que j'utilise C++ Builder Pro 2007.
Merci d'avance.