Pointeur de tableau.
Résolu/Fermé
A voir également:
- Pointeur de tableau.
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Pointeur souris - 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
4 réponses
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
25 avril 2013 à 21:58
25 avril 2013 à 21:58
Salut !
(Huhu je ressors mes vieilles notions de C vu en cours)
& te donne l'adresse.
int tab[5] = {1,2,3,4,5};
int p[5] = tab; // Te "copie" la même chose que tab dans une autre zone mémoire (à confirmer par quelqu'un de plus compétent !)
int a[5] = &tab; // Te fais un lien vers tab lui même en mémoire
tab[0] = 6;
printf : tab[0] te donne 6
p[0] te donne 1
a[0] te donne 6
(Huhu je ressors mes vieilles notions de C vu en cours)
& te donne l'adresse.
int tab[5] = {1,2,3,4,5};
int p[5] = tab; // Te "copie" la même chose que tab dans une autre zone mémoire (à confirmer par quelqu'un de plus compétent !)
int a[5] = &tab; // Te fais un lien vers tab lui même en mémoire
tab[0] = 6;
printf : tab[0] te donne 6
p[0] te donne 1
a[0] te donne 6
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
25 avril 2013 à 23:02
25 avril 2013 à 23:02
et dans le cas d'une chaîne de caractère assignée à un char*[] // par ex char* str[] = "chaine"
Je reformulerais en disant dans des initialisations par des chaînes de type "xyz"
Sinon ok pour le reste.
int (*p)[5] = tab; // ne fonctionne pas, je suis obligé de faire &tab
Cela doit fonctionner, mais un warning devrait être remonté (en C standard).
Mais d'un point de vue type, &tab et tab sont différents. C'est pour ça que le compilateur relève un warning.
Je reformulerais en disant dans des initialisations par des chaînes de type "xyz"
Sinon ok pour le reste.
int (*p)[5] = tab; // ne fonctionne pas, je suis obligé de faire &tab
Cela doit fonctionner, mais un warning devrait être remonté (en C standard).
Mais d'un point de vue type, &tab et tab sont différents. C'est pour ça que le compilateur relève un warning.
Donc c'est simplement le compilateur qui considère ces deux types comme différents, mais une fois compilé les deux sont équivalent ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
26 avril 2013 à 07:08
26 avril 2013 à 07:08
C'est bien ça.
25 avril 2013 à 23:05
Nope, c'est incorrect. Le compilateur va remonter une erreur. Un tableau ne s'initialise pas comme ça. L'explication est d'ailleurs donnée par Jika ;-).
int a[5] = &tab;
Incorrect également pour la même raison.