rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[langC] Connaitre taille tableau dynamique

Posté par Lewellah, le vendredi 23 septembre 2005 à 16:12:34
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.
Configuration: bi-proc 2,4 GHz Xeon
1 Go RAM
Linux RedHat 9.0
Répondre à Lewellah  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le vendredi 23 septembre 2005 à 16:22:23
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.
Répondre à kilian

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blurk, le vendredi 23 septembre 2005 à 17:11:35
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)
¤
Répondre à blurk

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lewellah, le vendredi 23 septembre 2005 à 17:38:55
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)...
Répondre à Lewellah

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
florent, le lundi 26 septembre 2005 à 18:38:50
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 !
Répondre à florent

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lewellah, le lundi 26 septembre 2005 à 18:43:13
Pourquoi faire simple quand on peut faire compliqué ! Merci florent, ça me parait très judicieux comme idée ;-)
Répondre à Lewellah

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le mardi 27 septembre 2005 à 12:58:00
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. Salutation !
Char Snipeur
Répondre à Char Snipeur

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
henri, le jeudi 3 mai 2007 à 14:59:26
ouhou
Répondre à henri

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 ekra, le jeudi 3 mai 2007 à 15:17:06
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". Ceci est une signature.
Répondre à ekra
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MediaInfo 0.7.7.4MediaInfo - MediaInfo fournit la liste des codecs nécessaires ainsi que des informations techniques sur vos fichiers vidéo et audio. ...Catégorie: Codecs
Licence: Open Source
Télécharger Patch français pour Ad-aware 1.1Patch français pour Ad-aware - Inclus les modules pour Ad-Aware (pour toutes versions antérieures à Ad-Aware 2007) pour les langues suivantes : Catalan,...Catégorie: Anti-Spyware
Licence: Freeware/gratuit
Télécharger ArtWeaver 0.5.0.1ArtWeaver - Artweaver est un logiciel de dessin gratuit permettant de réaliser des effets artistiques : Support de différents outils...Catégorie: Dessin
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [langC] Connaitre taille tableau dynamique »