Avatar ·

Comment trouver la longueur d'un tableau en C++ ? Problème avec sizeof et les pointeurs

Bonjour à tous ! Je suis un développeur C++ débutant et j'ai rencontré un problème très étrange. J'ai besoin de savoir combien d'éléments se trouvent dans un tableau, mais mes tentatives échouent. J'écris ceci : ```cpp int arr[] = {10, 20, 30, 40, 50}; int size = sizeof(arr) / sizeof(arr[0]); cout << "Longueur du tableau : " << size; // Affiche 5 — tout est correct ``` Mais quand j'essaie de faire la même chose à l'intérieur d'une fonction, en passant le tableau comme paramètre, j'obtiens n'importe quoi : ```cpp void printArrayLength(int arr[]) { int size = sizeof(arr) / sizeof(arr[0]); cout << "Longueur du tableau : " << size; // Affiche 1 ou 2, mais pas 5 ! } int main() { int myArray[] = {10, 20, 30, 40, 50}; printArrayLength(myArray); return 0; } ``` Pourquoi cela se produit-il ? sizeof(arr) à l'intérieur de la fonction ne donne pas la taille du tableau entier, mais quelque chose d'autre. J'ai lu sur les pointeurs, mais je ne comprends pas complètement le lien. Existe-t-il un moyen fiable de connaître la longueur d'un tableau en C++ qui fonctionne partout ? Ou dois-je toujours passer la taille ?