Votre question

L'allocation dynamique

Tags :
  • Programmation
Dernière réponse : dans Programmation
21 Avril 2010 22:37:21

Bonsoir a tous :) 

Avec ce code qui se trouve dans le chapitre "L'allocation dynamique" , j'ai voulu entrer les noms des Amis au lieu des ages mais ça plante a chaque fois.. avez des indices a me donner?

  1. int main(int argc, char *argv[])
  2. {
  3. int nombreDAmis = 0, i = 0;
  4. int* ageAmis = NULL;
  5.  
  6.  
  7. printf("Combien d'amis avez-vous ? ");
  8. scanf("%d", &nombreDAmis);
  9.  
  10. if (nombreDAmis > 0)
  11. {
  12. ageAmis = malloc(nombreDAmis * sizeof(int));
  13. if (ageAmis == NULL)
  14. {
  15. exit(0);
  16. }
  17.  
  18.  
  19. for (i = 0 ; i < nombreDAmis ; i++)
  20. {
  21. printf("Quel age a l'ami numero %d ? ", i + 1);
  22. scanf("%d", &ageAmis[i]);
  23. }
  24.  
  25.  
  26. printf("\n\nVos amis ont les ages suivants :\n");
  27. for (i = 0 ; i < nombreDAmis ; i++)
  28. {
  29. printf("%d ans\n", ageAmis[i]);
  30. }
  31.  
  32.  
  33. free(ageAmis);
  34. }
  35.  
  36. return 0;
  37. }

Autres pages sur : allocation dynamique

a b L Programmation
21 Avril 2010 22:59:13

A première vue, je ne vois pas. Où est-ce que ça plante ? as-tu déjà entré des ages ? T'en demande-t-il au moins un ?
m
0
l
22 Avril 2010 00:15:28

si si ce code fonctionne très bien, je veux juste demander a l'utilisateur des noms au lieu des ages...
m
0
l
Contenus similaires
22 Avril 2010 08:26:11

As-tu mis les "#include..." ?
m
0
l
22 Avril 2010 11:12:42

Quelle est la différence entre un âge et un nom? Sont-ils stockés de la même façon?

Une fois que tu auras saisie la différence il suffira de changer le format de la variable qui sert à stocker des âges par le format adéquat et d'en tenir compte d'en le traitement de cette variable.

Un indice: Si ce n'est pas déjà le cas, commence par être à l'aise avec les traitements sur les tableaux de caractères.
m
0
l
22 Avril 2010 11:31:32

Un nom est un chaîne de caractères, un âge est un nombre.
m
0
l
22 Avril 2010 12:04:16



Voici ce que j'ai fais avec un plantage

  1. int main(int argc, char *argv[])
  2. {
  3. int nombreDAmis = 0, i = 0;
  4. char* nomAmis = NULL;
  5.  
  6.  
  7. printf("Combien d'amis avez-vous ? ");
  8. scanf("%d", &nombreDAmis);
  9.  
  10. if (nombreDAmis > 0)
  11. {
  12. nomAmis = malloc(nombreDAmis * sizeof(char));
  13. if (nomAmis == NULL)
  14. {
  15. exit(0);
  16. }
  17.  
  18.  
  19. for (i = 0 ; i < nombreDAmis ; i++)
  20. {
  21. printf("Quel est le nom de l'amis %d ? ", i + 1);
  22. scanf("%s", nomAmis[i]);
  23. }
  24.  
  25.  
  26. printf("\n\nVos amis ont les noms suivants :\n");
  27. for (i = 0 ; i < nombreDAmis ; i++)
  28. {
  29. printf("%s\n", nomAmis[i]);
  30. }
  31.  
  32.  
  33. free(nomAmis);
  34. }
  35.  
  36. return 0;
  37. }

m
0
l
22 Avril 2010 12:11:30

Regardes ce qu'a écrit PetitTigre, un nom est "une chaine de caractères", un nom n'est pas "un caractère".
m
0
l
a b L Programmation
22 Avril 2010 22:45:22

ataofeal a dit :
Regardes ce qu'a écrit PetitTigre, un nom est "une chaine de caractères", un nom n'est pas "un caractère".

Oui, du coup les scanf/printf sont à revoir.

ps: ataofeal, ça faisait un moment que je n'avais pas vu un de tes posts. :) 
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS