Language C

Fermé
Lena11 - 26 janv. 2010 à 21:31
 Lena11 - 27 janv. 2010 à 06:35
Bonjour,

Bonjour je voudrais savoir s'il est possible que l'on m'aide.
J'ai un exercice à faire, pourriez vous m'aidez? :sad:

(Pointeurs et tableaux)
Un programme contient la déclaration suivante :
u16 tab[10] = {4,12,53,19,11,60,24,12,89,19};
Compléter ce programme de façon à pouvoir afficher les adresses des éléments du tableau.
Merci de répondre :D

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
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;
}
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
Compléter ce programme ... c'est sans doute de l'humour au trois ou quatrième degré ! ;-)
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.
0
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
Salut loupius,

La condition d'arrêt du for est plutôt i<sizeof tab/sizeof *tab

Cdlt,
0
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
Oui, j'aurais dû essayer essayer le programme avant de le poster.
Au nom de la communauté, je te remercie ;-)
0
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
vous parler de l'humour...
il fallait au moins exécuter ce programme avant de postuler de tels erreurs.
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 à 22:24
printf("%d\n",tab+i);
Je pense ne pas être le seul à ne pas toujours essayer les programmes ;-)
Bonne soirée.
0
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
j ai tester est ça marche bien,
vérifier s'il vous plait!!!! avant de répondre.
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 à 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.
0
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
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,
0
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
Ouf, tu me rassures; j'ai cru un instant que je n'étais plus dans le coup !
Bonne soirée.
0

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
tu parle de quel nouveauté?
On est la pour changer d'idées et partager l'information.
0
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
Merci infiniment fiddy, toi aussi loupius.
Bonne soirée.
0
Merci à tous. C'est simple pour vous mais je débute juste :)
0