Programme c

Résolu
Bonjour,
je debute dans la programmation c et j'ai créé un petit programme :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char prenom[100];
char ville[100];
int age = 0;
printf("Comment t'appelles-tu ? ");
scanf("%s", prenom);
printf("De quelle ville viens tu ?");
scanf("%s", ville);
printf("Quelle age a tu ?");
scanf("%d", age);
printf("%s %d %s ", prenom , age , ville);

return 0;
}

je l'ai edité avec code::blocks et quand je l'ouvre , quand il demande l'age il y a un message d'erreur (...voulez vous envoyez le rapport d'erreur a microsoft...) .
je ne sais pas d'ou viens le probleme .
pourriez vous m'aider ?
merci

2 réponses

  1. Contributeur
    scanf("%d", age);
    en effet, il y a une erreur, il faut faire
    scanf("%d", &age);

    ceci car pour que scanf puisse modifier la variable age, il faut passer un pointeur.
    avec les autres variables tu n'avais pas de problèmes car ce sont des tableaux de char, et qui dit tableau dit pointeur.

    voili voilou !

    0
    1. et ca serait mieux de ne pas initialiser la taille des tableaux de caractères aussi, mettre juste un pointeur et pas un tableau non ?
      0
    2. Contributeur
      Tu veux dire, au lieu de
      char prenom[100];
      faire
      char* prenom;
      prenom = new char[100]

      ???

      Personnelement, ca ne me choque pas, et je pense qu'il a d'autres choses à voir avant la notion de pointeurs ;)
      lels pointeurs c'est la "grosse pillule" à gober ... autant qu'il ai vu les bases avant, sinon il risque de pas avoir la motivation d'apprendre (je te rassure starcleff, une fois qu'on a comprit les pointeurs, on les trouve simples...)
      0
  2. Merci beaucoup ! je n'y avais pas pensé !!
    merci !!!
    0