Création
d'entreprise
Posez votre question Signaler

[langC] Connaitre taille tableau dynamique [Résolu]

Lewellah - Dernière réponse le 3 mai 2007 à 15:17
Bonjour.

J'aimerais savoir la marche à suivre pour déterminer la taille d'un tableau dynamique (en octets) étant donné que sizeof n'est applicable qu'aux structures statiques. N'étant pas spécialiste du langage C, je remercie à l'avance quiconque aurait un petit bout de code à me donner (avec des commentaires clairs si possible).

Merci.
Lire la suite 

[langC] Connaitre taille tableau dynamique »

8 réponses
Réponse
+0
moins plus
Salut,

Je ne vois pas trop comment ça peut être faisable.
Si tu parcoures chaque offset de ton tableau dynamique pour connaître la taille, tu finiras par déborder et là c'est le drame.... :-)

Etant donné que tu alloues avec une taille que toi ou ton programme définit, dans ce cas si tu veux la taille pour après il faut la garder dans une variable.
Ajouter un commentaire
Réponse
+0
moins plus
taille occupée ou taille allouée ?

le seul moyen de connaitre la taille maximale
d'un tableau dynamique c'est de connaitre la taille qui lui a été allouée
lors d'un new() ou d'un malloc()
Mais si ce qu'on appelle la taille du tableau est celle occupée par des variables, alors pas d'autre moyen de de parcourir tous les éléments
jusqu'à la découverte d'un élément convenu comme désignant la fin du tableau (par exemple '\0' pour une chaine de caractères)
Ajouter un commentaire
Réponse
+0
moins plus
C'est effectivement celle occupée par les variables qui m'intéresse. En fait, vu la taille des données traitées par ce programme, j'espérais pouvoir éviter un parcours de la table mais bon (et oui, je crois encore aux miracle, même en C)...
florent - 26 sept. 2005 à 18:38
En fait, à mon avis, mieux vaut créer une structure contenant un entier (le nombre d'éléments de la tavle) et le tableau (table).
A chaque fois que tu modifies la table tu mets à jour l'entier.
Pour connaitre le nombre d'élément, eh bien tu lis l'entier !
Lewellah- 26 sept. 2005 à 18:43
Pourquoi faire simple quand on peut faire compliqué ! Merci florent, ça me parait très judicieux comme idée ;-)
Ajouter un commentaire
Réponse
+0
moins plus
Salut.
En C++ il existe <vector> qui permet de faire ça simplement. Je pense qu'il doit exister des bibliothèques assez similaire en C. Ou trouvable sur Internet.
Ajouter un commentaire
Réponse
+0
moins plus
ouhou
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Oui ce qu'il semble préférable est une structure contenant la taille du tableau.
Sinon il est impossible de connaître la taille d'un tableau car l'entité manipulée n'est qu'un pointeur sur le premier élément.
Sinon tu peux affecter un caractère spécial en fin de tableau, comme pour les chaînes de caracteres "Bonjour!\0".
Ajouter un commentaire
Ce document intitulé « [langC] Connaitre taille tableau dynamique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?