7 réponses
einsteinn
Messages postés
8
Date d'inscription
dimanche 24 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
26 janv. 2010 à 21:47
26 janv. 2010 à 21:47
bsr,
la déclaration :
u16 tab[10] = {4,12,53,19,11,60,24,12,89,19}; est fausse,
voici un programme qui affiche les adresses des éléments du tableau.
#include <stdio.h>
int main()
{
int tab[10] = {4,12,53,19,11,60,24,12,89,19};
for(int i=0;i<10;i++)
printf("%d\n",tab+i);
getchar();
return 0;
}
la déclaration :
u16 tab[10] = {4,12,53,19,11,60,24,12,89,19}; est fausse,
voici un programme qui affiche les adresses des éléments du tableau.
#include <stdio.h>
int main()
{
int tab[10] = {4,12,53,19,11,60,24,12,89,19};
for(int i=0;i<10;i++)
printf("%d\n",tab+i);
getchar();
return 0;
}
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
26 janv. 2010 à 21:49
26 janv. 2010 à 21:49
Compléter ce programme ... c'est sans doute de l'humour au trois ou quatrième degré ! ;-)
Au 'u16' près, on pourrait écrire:
Au 'u16' près, on pourrait écrire:
#include <stdio.h> #include <stdlib.h> int main() { int tab[10] = {4, 12, 53, 19, 11, 60, 24, 12, 89, 19}; int i; for (i=0; i<sizeof(tab); i++) printf ("adresse tab[%d] : %p\n", i, &tab[i]); return EXIT_SUCCESS; }Bonne continuation.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
26 janv. 2010 à 22:08
26 janv. 2010 à 22:08
Salut loupius,
La condition d'arrêt du for est plutôt i<sizeof tab/sizeof *tab
Cdlt,
La condition d'arrêt du for est plutôt i<sizeof tab/sizeof *tab
Cdlt,
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
26 janv. 2010 à 22:11
26 janv. 2010 à 22:11
Oui, j'aurais dû essayer essayer le programme avant de le poster.
Au nom de la communauté, je te remercie ;-)
Au nom de la communauté, je te remercie ;-)
einsteinn
Messages postés
8
Date d'inscription
dimanche 24 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
26 janv. 2010 à 22:14
26 janv. 2010 à 22:14
vous parler de l'humour...
il fallait au moins exécuter ce programme avant de postuler de tels erreurs.
il fallait au moins exécuter ce programme avant de postuler de tels erreurs.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
26 janv. 2010 à 22:24
26 janv. 2010 à 22:24
printf("%d\n",tab+i);
Je pense ne pas être le seul à ne pas toujours essayer les programmes ;-)
Bonne soirée.
Je pense ne pas être le seul à ne pas toujours essayer les programmes ;-)
Bonne soirée.
einsteinn
Messages postés
8
Date d'inscription
dimanche 24 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
26 janv. 2010 à 22:30
26 janv. 2010 à 22:30
j ai tester est ça marche bien,
vérifier s'il vous plait!!!! avant de répondre.
vérifier s'il vous plait!!!! avant de répondre.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
26 janv. 2010 à 22:55
26 janv. 2010 à 22:55
Ah bon... Vouloir afficher une adresse comme un entier, je pense que mon compilateur râlerait ! Mais tu dois être à la pointe de la nouveauté et moi à la traîne!
Bonne soirée.
Bonne soirée.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
26 janv. 2010 à 23:50
26 janv. 2010 à 23:50
J ai tester est ça marche bien
Ce n'est pas parce que ça marche que c'est correct. Loin de là même. Si ton compilateur n'affiche pas de warning, je te conseille d'en changer.
printf("%d\n",tab+i);
tab+i est de type void*, %d sert pour afficher un int.
Pour afficher une adresse, il faut utiliser %p (et non %d). D'où l'intervention de loupius.
Cdlt,
Ce n'est pas parce que ça marche que c'est correct. Loin de là même. Si ton compilateur n'affiche pas de warning, je te conseille d'en changer.
printf("%d\n",tab+i);
tab+i est de type void*, %d sert pour afficher un int.
Pour afficher une adresse, il faut utiliser %p (et non %d). D'où l'intervention de loupius.
Cdlt,
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
27 janv. 2010 à 00:16
27 janv. 2010 à 00:16
Ouf, tu me rassures; j'ai cru un instant que je n'étais plus dans le coup !
Bonne soirée.
Bonne soirée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
einsteinn
Messages postés
8
Date d'inscription
dimanche 24 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
26 janv. 2010 à 23:10
26 janv. 2010 à 23:10
tu parle de quel nouveauté?
On est la pour changer d'idées et partager l'information.
On est la pour changer d'idées et partager l'information.
einsteinn
Messages postés
8
Date d'inscription
dimanche 24 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010
27 janv. 2010 à 00:51
27 janv. 2010 à 00:51
Merci infiniment fiddy, toi aussi loupius.
Bonne soirée.
Bonne soirée.