[langC] Connaitre taille tableau dynamique
Résolu/Fermé
Lewellah
-
23 sept. 2005 à 16:12
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 - 3 mai 2007 à 15:17
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 - 3 mai 2007 à 15:17
A voir également:
- Taille d'un tableau en c
- Tableau croisé dynamique - Guide
- Comment réduire la taille d'un fichier - Guide
- Code ascii tableau - Guide
- Comment faire un tableau - Guide
- Identifier un tableau à partir d'une photo - Forum Graphisme
6 réponses
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
342
3 mai 2007 à 15:17
3 mai 2007 à 15:17
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".
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".
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
23 sept. 2005 à 16:22
23 sept. 2005 à 16:22
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.
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.
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
23 sept. 2005 à 17:11
23 sept. 2005 à 17:11
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)
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)
Lewellah
Messages postés
2
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
26 septembre 2005
23 sept. 2005 à 17:38
23 sept. 2005 à 17:38
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)...
Lewellah
Messages postés
2
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
26 septembre 2005
>
florent
26 sept. 2005 à 18:43
26 sept. 2005 à 18:43
Pourquoi faire simple quand on peut faire compliqué ! Merci florent, ça me parait très judicieux comme idée ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
27 sept. 2005 à 12:58
27 sept. 2005 à 12:58
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.
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.