Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3651 connectés 

 


Dernière réponse
Sujet : [C++] Nombre d'éléments d'un tableau dynamique ???
LeGreg sizeof est un opérateur résolu à la compilation.
Donc comme dynamique implique taille connue a l'exécution
c'est normal que ca ne marche pas.
 
Ceci dit sizeof dans le cas d'un tableau c'est juste du sucre syntaxique pour que le programmeur n'ait pas a faire le calcul lui-meme. Evidemment ca ne marche pas pour un tableau dynamique mais comme on dit il y a de la limite à la paresse du programmeur :).
 
LeGreg

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
LeGreg sizeof est un opérateur résolu à la compilation.
Donc comme dynamique implique taille connue a l'exécution
c'est normal que ca ne marche pas.
 
Ceci dit sizeof dans le cas d'un tableau c'est juste du sucre syntaxique pour que le programmeur n'ait pas a faire le calcul lui-meme. Evidemment ca ne marche pas pour un tableau dynamique mais comme on dit il y a de la limite à la paresse du programmeur :).
 
LeGreg
HelloWorld Je suppose que c'est
int a[256];
et pas
char a[256];
(chez moi sizeof(char) = 1)
 
perso, je fait
 
#define A_SIZE 256
int a[A_SIZE];
 
le sizeof(a) j'aime pas ...
pour les éléments dynamiques, ben tu créés un variable dans laquelle tu stockes la taille ...
 
int b_size = 256;
char * b = new char[b_size];
farib a  est un pointeur de caractere, pas un tableau
verdoux ben tu fais
std::vector<char> v;
v.size();
juju-le-barbare Bonjour,
 
Imaginons que je créé un tableau statique 'a' de 256 int (int de 4 octets) :
 
char a[256];
 
* pour connaitre la taille du tableau je fais :
sizeof(a); /*1024*/
 
* pour connaitre la taille d'un élément (d'un int donc) je fais :
sizeof(a[0]); /*4*/
 
* pour connaitre le nombre d'éléments de ce tableau je fais :
sizeof(a)/sizeof(a[0]); /*256*/
 
Maintenant imaginons qu'il s'agisse d'un tableau dynamique b avec les mêmes caractéristiques :
 
char *b = new char[256];
 
* pour connaitre la taille du tableau je fais :
sizeof(a); /*??? J'ai la taille du pointeur, soit 4 !*/
 
* pour connaitre la taille d'un élément (d'un int donc) je fais :
sizeof(a[0]); /*4 ici ça roule*/
 
* pour connaitre le nombre d'éléments de ce tableau je fais :
sizeof(a)/sizeof(a[0]); /*Logiquement j'ai 4/4 soit 1, mais pas 256 :( */
 
 
Donc pour manipuler les tableaux dynamiques, ça marche comment ???
 
Merci :hello:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)