[c/c++]taille tableau entier
Résolu/Fermé
Utilisateur anonyme
-
12 févr. 2010 à 16:53
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 févr. 2010 à 20:53
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 févr. 2010 à 20:53
A voir également:
- Longueur tableau c
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Le fichier contient un tableau présentant un extrait des livres les plus prêtés à paris en 2016. filtrez le tableau pour ne faire apparaître que les bandes dessinées ado. puis filtrez le tableau pour ne faire apparaître que celles dont l'auteur est zep. quel est le titre de la bande dessinée ado de zep qui a été la plus prêtée d'après ce tableau ? ✓ - Forum Windows 10
- Dimension tv 43 pouces longueur et largeur ✓ - Forum Ecran
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
12 févr. 2010 à 17:11
12 févr. 2010 à 17:11
Bonjour,
Ce n'est pas la bonne explication.
Même en envoyant un tableau, ou un pointeur pointant sur une zone allouée tu obtiendras (souvent) 1.
La raison est simple : en C/C++, il n'est pas possible d'envoyer de tableau en argument. Le C/C++ transformera le tableau en adresse sur le premier élément du tableau. Ainsi même si tu envoies un tableau en argument, le sizeof vaudra sizeof(char*) (qui vaut 4 sur une architecture 32 bits). Dès lors, puisque ton sizeof(int) vaut 4 sur ta machine, tu obtiens 1.
Cette fois, c'est résolu ;-))).
Ce n'est pas la bonne explication.
Même en envoyant un tableau, ou un pointeur pointant sur une zone allouée tu obtiendras (souvent) 1.
La raison est simple : en C/C++, il n'est pas possible d'envoyer de tableau en argument. Le C/C++ transformera le tableau en adresse sur le premier élément du tableau. Ainsi même si tu envoies un tableau en argument, le sizeof vaudra sizeof(char*) (qui vaut 4 sur une architecture 32 bits). Dès lors, puisque ton sizeof(int) vaut 4 sur ta machine, tu obtiens 1.
Cette fois, c'est résolu ;-))).
Utilisateur anonyme
12 févr. 2010 à 16:57
12 févr. 2010 à 16:57
en fait il faut obligatoirement qu'un allocation mémoire soit fait quelque part. résolu
22 févr. 2010 à 12:15
le seul moyen est d'ajouter un paramètre à la méthode qui lui contient la taille. Le seul tableau avec lequel ca marche est la liste chainée (ou char*) qui lui, grâce à :
ou ce code :
enfin voila ^^ le seul moyen est soit de créer un type tableau d'entier avec un caracrère de fin, soit passer la taille en paramètre.
bisou à tous
22 févr. 2010 à 18:43
24 févr. 2010 à 09:44
24 févr. 2010 à 20:53
Par exemple, void fonction( int *tab, size_t taille);
Et quand tu appelles la fonction : fonction(tab, sizeof taille/sizeof *taille);
Cdlt,