Taille d'un array
Résolu/Fermé- Taille d'un array
- Comment réduire la taille d'un fichier - Guide
- Reduire taille photo - Guide
- Afficher taille dossier windows - Guide
- Taille iphone 14 - Guide
- 8 cm taille réelle - Guide
1 réponse
Modifié le 19 août 2022 à 12:54
Bonjour,
tab est ici un pointeur. Il pointe sur 100 int et peut être syntaxiquement utilisé comme un tableau.
tab[x] est en fait résolu comme étant *(tab+x)
Le nombre d'élément du tableau c'est 100, la taille du tableau c'est 100*sizeof(int). Ça, toi tu le sais, mais en fait le code ne le mémorise pas, un pointeur c'est juste un pointeur.
Si la fonction peut changer la taille réservée, elle doit t'indiquer sa nouvelle taille. J'y crois peu ici car pour changer une taille, il faut allouer un nouveau pointeur et donc c'est comme si le tableau changeait de place.
Donc une fonction qui changerait la taille doit recevoir:
- l'adresse du pointeur (pour en changer la valeur)
- le nombre d'éléments du tableau (pour savoir si elle a besoin de l'adapter)
- un moyen d'indiquer que la taille à changée (par un paramètre reçu par adresse ou par retour de la fonction par exemple.)
Le nombre d'éléments alloué est impossible à retrouver. Et comme on a toujours besoin de se souvenir de la taille, on doit toujours avoir une variable de plus qui indique cela.
size_t nb_element = 100; int *tab = malloc(sizeof(int) * nb_element);
Le nombre d'éléments, c'est 100.
18 août 2022 à 15:23
Merci beaucoup