Bonjour,
Je suis actuellement en train de découvrir la notion de pointeurs et je rencontre un petit problème avec le code ci-dessous.
L'adresse du tableau "tableau" et du pointeur "pvaleur" sont identiques, tous les deux sont déclarés en double et
pourtant les informations renvoyées par sizeof sont différentes ?! Aurais-je oublié quelque chose ?
Auriez vous une explication s'il vous plait ?
Merci d'avance !
//Début du code :
///////////////////////////////////////
#include <iostream>
using namespace std;
double lecturepointeur (double *pvaleur);
int main (void)
{
double tableau[]={10.0,5.0,15.0};
cout << "adresse tableau=" << hex << &tableau << endl;
cout << dec << sizeof(tableau) << endl;
cout << dec << sizeof(tableau[0]) << endl;
double nb=(sizeof tableau) / (sizeof tableau[0]);
cout << "nb avant =" << dec << nb << endl;
cout << "resultat de fonction:" << endl << lecturepointeur(tableau) << endl ;
return 0;
}
double lecturepointeur (double *pvaleur)
{
cout << "adresse recue dans fonction : " << hex << pvaleur << endl;
cout << pvaleur[0] << endl;
cout << dec << sizeof(pvaleur) << endl;
cout << dec << sizeof(pvaleur[0]) << endl;
double nb=(sizeof pvaleur) / (sizeof pvaleur[0]);
cout << "nb=" << dec << nb << endl;
return nb;
}
///////////////////////////////////////
//Fin du code.