Bonjour à tous, j'ai vu ici comment calculer la taille d'un tableau statique.
Mon main :
Donc ici, tout va bien, mais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include <iostream> int main() { int a[2] = {1, 2}; std::cout << (sizeof(a) / sizeof(*a)); // affiche bien 2 }
Quand j'appelle cette fonction, elle me renvoie 1 (j'ai affiché les sizeof dans la fonctions et les deux valent 4 ??).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 template<typename T> long unsigned int taille(T tab[]) { return (sizeof(tab) / sizeof(*tab)); }
J'ai essayé de déclarer la fonction en inline (vu que le code est inséré quand la fonction est appelée), mais ça n'a pas fonctionné.
Ensuite, j'ai essayé avec des tableaux de tailles différentes et les sizeof valent tout le temps 4.
Pourquoi ?
Partager