C++ Code examen 08-09

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu C++ Code examen 08-09

Message  XavBod le Mar 11 Mai 2010, 16:45

Bonjour bonjour amis bloceurs Very Happy

Je refait les examens des autres année sen c++ or je suis tombé sur un truc étrange.... le code 5...

Apres un petit bidouillage j'aurais voulu savoir d'où venait les différentes valeurs
Spoiler:
Code:

using std::printf;

void fct(double tab[5]){
   printf("%d;%d",sizeof(tab),sizeof(tab[0]));
   printf("%d\n",(sizeof(tab)/sizeof(tab[0])));
}

int main(){
   double tab[5];
   printf("%d,%d\n",sizeof(tab),sizeof(tab[0]));
   printf("%d\n",(sizeof(tab)/sizeof(tab[0]))); //AFFICHE 3
   //std::cout<<sizeof(tab)<<" "<<sizeof(tab[0])<<std::endl;
   fct(tab);//AFFICHE 0
   return 0;
}

Ce code me fournit le résultat suivant :

40,8
5// les 2 premiers sont normaux et correspondent à ma pensée
4;80// c'est ici que ya un stuut

A croire que tab est évalué comme un pointeur quelconque.... Je ne comprends pas d'où vient ce 80
Embarassed


Dernière édition par XavBod le Mar 11 Mai 2010, 18:38, édité 1 fois

XavBod

Nombre de messages : 196
Age : 26
Prénom : Xavier
Statut : Etudiant 3eme indu
Localisation : Woluwe
Date d'inscription : 27/09/2008

Revenir en haut Aller en bas

resolu Re: C++ Code examen 08-09

Message  Anthoblack le Mar 11 Mai 2010, 16:53

XavBod a écrit:Ce code me fournit le résultat suivant :

40,8
5// les 2 premiers sont normaux et correspondent à ma pensée
4;80// c'est ici que ya un stuut

A croire que tab est évalué comme un pointeur quelconque.... Je ne comprends pas d'où vient ce 80
Oui, sizeof ne peut connaitre la taille du tableau qui n'est qu'un pointeur passé à une fonction (et n'est donc pas un tableau défini plus haut dans la fonction). Rien d'anormal donc... 4 octets pour un pointeur.
Suivi du 8 pour un double
Et du 0 qui provient du deuxième printf (la division). Voilà Wink

PS : d'où l'intérêt de fournir la taille du tableau en paramètre...
PPS : c'était déjà le cas en C, donc au début de l'année Wink

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

resolu Re: C++ Code examen 08-09

Message  XavBod le Mar 11 Mai 2010, 17:20

j'avais pas tiltié le 8 et le 0 collé >< je suis trop un noob :p

XavBod

Nombre de messages : 196
Age : 26
Prénom : Xavier
Statut : Etudiant 3eme indu
Localisation : Woluwe
Date d'inscription : 27/09/2008

Revenir en haut Aller en bas

resolu Re: C++ Code examen 08-09

Message  Contenu sponsorisé Aujourd'hui à 07:11


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum