C/C++ question taille de tableau

C/C++ question taille de tableau - Programmation

Marsh Posté le 23-09-2001 à 20:18:48    

qq petites questions C++ :
 
 
si t est tableau d entier, comment savoir le nombre d element,

Reply

Marsh Posté le 23-09-2001 à 20:18:48   

Reply

Marsh Posté le 23-09-2001 à 20:28:05    

Ben tu le connais forcement puisque tu l'a alloué sous la forme  
int tab[15];
 
non...je crois que j'ai pas compris la question :)


---------------
Si t'es pas net, reste a la buvette
Reply

Marsh Posté le 23-09-2001 à 20:33:24    

si t'as int t[300]
sizeof(t)/sizeof(int) retourne 300
 
mais si t'as int *t=new int[300] ben la y'a pas de moyen
pour recuperer la taille. Tu peux passer par un vecteur d'entiers:
vector<int> t(300);
 
t.size(); //retourne 300

Reply

Marsh Posté le 23-09-2001 à 20:38:22    

voila, c est que reccupere un pointeur donc  je peux pas savoir la taille du "tableau",  
ok, bon c pas grave, merci quand meme

 

[edtdd]--Message édité par slvn--[/edtdd]

Reply

Marsh Posté le 24-09-2001 à 03:38:16    

Si si c'est pareil, lorque c'est un pointeur il divise la taille du tableau par la taille d'un élément avec leur nombre d'octets.

Reply

Marsh Posté le 24-09-2001 à 10:45:09    

???  
 
char *ptr;
 
sizeof(ptr) = 4 octects ..  
 
pour connaitre la taille de ton tableau dynamique, tu es obligé de connaitre le nombre d'element qui se trouve dedans .. Et pour ca le mieux et d'utiser une variable que tu incrementeras / decrementeras à chaque fois que tu ajoutes ou supprimes un element dans ton tableau.
apres taille = sizeof(char)*nbelement;

Reply

Marsh Posté le 24-09-2001 à 13:31:00    

for(i=0;tab[i];i++)
;
return(i);
 
et voila? non?

Reply

Marsh Posté le 24-09-2001 à 13:35:11    

koulip31>  :D non, y a pas de vérification des limites en C++
 
La solution la plus simple, la plus propre, la plus portable... (la mieux quoi :p ), c'est un vector comme l'a dit aqwsezsxdr. La méthode size() fonctionnera dans tous les cas...
 
:sol:

Reply

Marsh Posté le 24-09-2001 à 13:45:58    

ma fonction va voller dans le decord !!!!
geronimo!!!!!  :lol:  :lol:  
 
warrf pas cool le C++ :(

Reply

Marsh Posté le 24-09-2001 à 14:10:36    

koulip31> en fait tu t'es trompé de topic, mais pour planter une bécane, rien de tel que de sortir d'un tableau :lol: ... mais attention avec des vraies valeurs aberrantes  :benetton:

Reply

Marsh Posté le 24-09-2001 à 14:10:36   

Reply

Marsh Posté le 24-09-2001 à 15:20:09    

la viper a écrit a écrit :

???  
 
char *ptr;
 
sizeof(ptr) = 4 octects ..  
 
pour connaitre la taille de ton tableau dynamique, tu es obligé de connaitre le nombre d'element qui se trouve dedans .. Et pour ca le mieux et d'utiser une variable que tu incrementeras / decrementeras à chaque fois que tu ajoutes ou supprimes un element dans ton tableau.
apres taille = sizeof(char)*nbelement;  




 
Justement supposons que le tableau a n éléments de 4 octets, sa tailel sera de n*4 octects ! ! !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed