Taille d'un tableau statique
Bonjour à tous, j'ai vu ici comment calculer la taille d'un tableau statique.
Mon main :
Code:
1 2 3 4 5 6
|
#include <iostream>
int main() {
int a[2] = {1, 2};
std::cout << (sizeof(a) / sizeof(*a)); // affiche bien 2
} |
Donc ici, tout va bien, mais :
Code:
1 2 3 4 5
|
template<typename T>
long unsigned int taille(T tab[]) {
return (sizeof(tab) / sizeof(*tab));
} |
Quand j'appelle cette fonction, elle me renvoie 1 (j'ai affiché les sizeof dans la fonctions et les deux valent 4 ??).
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 ?