Calculter la taille d'un tableau de int

Fermé
lagarkane - 6 août 2010 à 12:54
 lagarkane - 7 août 2010 à 08:46
Bonjour,
J'ai une question tout simple:

Si je veux trier un tableau de int dont je ne connais pas le nombre de caractère,
Comme ce n'est pas un tableau de char, je ne peux pas faire strlen ou sizeof....
Comment puis-je trouver le nombre de cases que contient mon tableau de int?

(mon tableau fait 50cases, avec sizeof j'obtiens 168, avec strlen j'obtiens 1, et quand je fais:
    while (tab[tabLength] != '\0')
    {
        tabLength++;
    }

J'obtiens tabLength = 64 u_u


A voir également:

5 réponses

Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
6 août 2010 à 13:27
C'est du c/c++ ?
Si c'est le cas je dirais : sizeof (tab) / sizeof (*tab).
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
6 août 2010 à 13:34
en cherchant un peu, je suis tombé sur la fonction getPtrSize .. a essayer, ej sais pas si ca peut répondre à la question ...

normalement, tu cherches à trouver 50 (lignes) ou 200 (octets), c'est ca ?
0
bah en fait, ce que j'aimerais savoir surtout, c'est quel est le caractère qui détermine la fin d'un tableau de int.
Je suis en train dme faire une ptite lib de fonctions de tri, et j'aimerais bien qu'on ait juste à passer le tableau en paramètre, sans devoir passer sa taille max à chaque fois
après j'aimerais éviter de devoir faire appel à d'autres fonctions si c'est possible

C'est en C, et je sais pas pk, mais la fonction sizeof me renvoie un nombre entre 100 et 500, et en strlen me renvoie 1. je sais pas pk ^^"
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
6 août 2010 à 14:16
strlen => s'arretera à la première valeur 0 rentrée dans le tableau je pense
sizeof=> je sais pas ce qui se passe dans ce cas. a étudier ...

le caractère qui determine la fin d'un tableau: il y en a pas. Un etableau c'est une réservation memoire. Si tu veux mettre toi meme une valeur en fin de tableau, libre a toi de le faire. Mais C++ ne le fait pas pour toi.

donc en gros, soit tu mets une valeur "absurde" en fin de tableau, lors de sa création, soit tu passe la valeur en paramètre...

ce que tu peux faire aussi, c'est créer une classe tableau, qui aura un pointeur, une taille, et comem constructeur parametré tu passe la taille et il cré le tableau ...
0
okay...
Dommage pk dans mon cas, j'aimerais faire des algos de tri utilisables peu importe le programme... Donc c'est un peu chaud de faire une fonction qui utilise une classe tableau ou qqch dans le genre. mieux vaut passer la taille en paramètre... Tant pis^^ Merci quand même
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
6 août 2010 à 15:07
ta question n'en reste pas moisn interessante. Dans l'absolu, l'information est quelque part, vu que tu as fait une reservation memoire. Mais je connais pas suffisament cette partie pour te dire comment acceder aux informations. J'ai déja été dans le meme cas que toi, je pense vraiement qu'il y a moyen d'acceder ç l'information, mais comment est une bonne question
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
6 août 2010 à 15:13
Ca ne marche pas avec la formule que j'avais mis ?
sizeof(tab) = "taille" totale du tableau
sizeof(*tab) = "taille" d'une case
sizeof (tab) / sizeof (*tab) = nbre de cases du tableau.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bah en tout cas chez moi, il m'affiches pas du tout la taille de mon tableau avec cette formule...
Je vais chercher l'implémentation de la fonction sizeof, pk j'trouve ca un peu bizarre.
0