Qu'est-ce que le decay d'un tableau en pointeur (array-to-pointer decay) en C++ ?
Bonjour, collègues ! Je viens de commencer à étudier le C++ et j'ai rencontré un comportement très étrange des tableaux. Lorsque je passe un tableau à une fonction et que j'essaie de connaître sa taille avec `sizeof`, je n'obtiens pas ce que j'attends.\n\nVoici un exemple :\n\n```cpp\n#include \n\nvoid printSize(int arr[]) {\n std::cout << "À l'intérieur de la fonction : " << sizeof(arr) << " octets" << std::endl;\n}\n\nint main() {\n int numbers[5] = {1, 2, 3, 4, 5};\n std::cout << "Dans main : " << sizeof(numbers) << " octets" << std::endl; // Affiche 20 (5 * 4)\n printSize(numbers); // Affiche 8 (taille d'un pointeur) sur un système 64 bits\n return 0;\n}\n```\n\nJe m'attendais à ce qu'à l'intérieur de la fonction, `sizeof(arr)` renvoie aussi 20, mais j'obtiens 8. Pourquoi cela se produit-il ? J'ai entendu le terme "array decay" (décroissance du tableau), mais je ne comprends pas vraiment ce que cela signifie.