Lorsque vous travaillez avec des tableaux en C , il peut être nécessaire de déterminer leur taille. Cependant, lors du passage d'un tableau comme argument de fonction, il se désintègre en un pointeur, ne laissant aucune information explicite sur la taille.
L'approche correcte pour déterminer la taille d'un tableau à partir d'un pointeur est de transmettre la taille en tant que valeur supplémentaire argument.
int largest(int *list, int highest_index) { // ... }
Pour utiliser cette fonction, passez le tableau et sa taille comme arguments :
int array[] = {1, 2, 3, 4, 5}; int size = sizeof(array) / sizeof(int); // Calculate array size int max = largest(array, size);
C hérite de l'équivalence tableau/pointeur à partir de C, qui permet aux tableaux de se décomposer en pointeurs lorsqu'ils sont transmis aux fonctions. Ce comportement signifie que le pointeur ne contient aucune information de taille.
Comprendre la disposition de la mémoire des tableaux est crucial. Lorsqu'un tableau est déclaré, une mémoire contiguë est allouée pour stocker ses éléments. Le pointeur vers le premier élément implique le début du tableau, mais il ne porte aucune information sur sa taille.
Pour déterminer avec précision la taille d'un tableau à partir d'un pointeur en C , il est nécessaire de passer la taille en argument supplémentaire à la fonction qui traite le tableau. Cette approche garantit que la fonction a accès aux informations requises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!