Sizeof() en c++
Résolu
mrd9991
Messages postés
179
Date d'inscription
Statut
Membre
Dernière intervention
-
mrd9991 Messages postés 179 Date d'inscription Statut Membre Dernière intervention -
mrd9991 Messages postés 179 Date d'inscription Statut Membre Dernière intervention -
Bonjour,je suis en train de programmer en c++ avec dev-cpp, mais j'ai rencontrer un problème lorsque j'ai utilisé l'instruction sizeof() à l'interieur d'une fonction pour sovoir les nombres d'octets prises par le tableau, voila un exemple:
void octet(double t[],taille)
{
cout<<sizeof(t);
}
avec:
const taille=7;
double a[taille] = {1,2.5,3,4,5,6,7}
octet(a,taille); //appelle de la fonction octet
le problème c'est que le resultat est toujours: 4, alors qu'il devrait ètre : 7*8=56
si vous pouvez m'aider.
merci d'avance
void octet(double t[],taille)
{
cout<<sizeof(t);
}
avec:
const taille=7;
double a[taille] = {1,2.5,3,4,5,6,7}
octet(a,taille); //appelle de la fonction octet
le problème c'est que le resultat est toujours: 4, alors qu'il devrait ètre : 7*8=56
si vous pouvez m'aider.
merci d'avance
4 réponses
Salut,
Normal, on ne peut pas passer de tableau en C/C++. De cette façon, tu ne passes qu'un pointeur sur le premier élément. Et de ce fait, tu obtiens la taille d'un pointeur. Soit 4 dans ton cas.
Normal, on ne peut pas passer de tableau en C/C++. De cette façon, tu ne passes qu'un pointeur sur le premier élément. Et de ce fait, tu obtiens la taille d'un pointeur. Soit 4 dans ton cas.
Non, car c'est le fonctionnement interne du C/C++ qui stipule que tu envoies un pointeur.
C'est pour ça qu'il faut toujours passer la taille du tableau en arguments.
Tu fais cout << taille; et tu auras la taille voulue.
Et lorsque tu appelles ta fonction : octet(t,sizeof t); ici sizeof t, vaudra la taille du tableau.
C'est pour ça qu'il faut toujours passer la taille du tableau en arguments.
Tu fais cout << taille; et tu auras la taille voulue.
Et lorsque tu appelles ta fonction : octet(t,sizeof t); ici sizeof t, vaudra la taille du tableau.
salut ,merci pour la solution, elle bien marchée avec ce que je voulai faire(correger les erreur des bornes des indices des tableau), il a fallu que j'ajoute un argument en plus pour sizeof(t) par ce que j'avais besoin aussi de l'argument taille mais c'est pas grave, l'importance c'est que ça a marchée, merci beaucoup encore une fois ,au revoir.