Bonjour,
J'aimerai savoir comment connaître la taille d'un tableau alloué dynamiquement ?
merci pour vos réponses!!
Bonjour,
J'aimerai savoir comment connaître la taille d'un tableau alloué dynamiquement ?
merci pour vos réponses!!
Bonjour,
Au moment de l'allocation ce l'on reçoit c'est un simple pointeur. Donc on ne peut pas retrouver la taille en utilisant ce pointeur, il faut impérativement retenir ce qui s'est fait au moment de l'allocation.
Merci pour votre réponse
Mais du coup pour retenir ce qu'il s'est fait j'utilise une variable globale ? Ou il y a un autre moyen ?
Bonjour.
Même si le langage C autorise les variables globales leur utilisation pose plus de problème qu'autre chose. Il faut temps que faire se peut s'en passer.
Tu peux par exemple créer une structure qui va englober le tableau et un entier qui contiendra sa taille :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 typedef struct { int *tab; unsigned int size; } tableau;
Ce code est simpliste. Il te donne juste le principe.
Edit:
Une autre manière plus simple est d'utiliser une valeur du tableau.
- Soit les données incluses sont comprises dans un intervalle connu [x,y] alors tu peux utiliser une valeur en dehors de cet intervalle pour déterminer la fin du tableau. C'est le principe des char* pour connaître la longueur des textes,
- soit tu insères la longueur dans la première position du tableau et tu utilises ton tableau à partir de la position 1.
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Bonjour
C'est toi qui crées ton tableau. Donc tu connais sa taille, te suffit de ne pas la perdre. Et pour ne pas perdre une valeur on utilise une variable. Ensuite mettre la variable en local ou global apportera dans chaque cas des avantages et des inconvénients mais les deux sont possibles et le choix ne regarde que toi. Toutefois, de par notre expérience, on peut dire que les globales apportent généralement plus d'inconvénients que d'avantages.
La solution de gerald3d de coupler cette taille au tableau permet de grouper les deux items dans un ensemble logique. Toute fonction qui reçoit cet ensemble aura alors directement accès au tableau et à sa taille ce qui permet ainsi à la fois d'éviter la globale et à la fois réduire le nombre de paramètres à passer à la fonction qui devra manipuler le tableau (un seul paramètre pour le tout).
Il me semble que c'est comme ça que fait Pascal non ?
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Partager