Débutant: je trouve pas les erreurs !! [C] - C++ - Programmation
Marsh Posté le 20-10-2002 à 18:07:05
c quoi le message d'erreur ?
Marsh Posté le 20-10-2002 à 18:10:09
Ben il compile bien le prog, il le lance, je peux saisir les valeurs dans le tableau mais au moment du tri il y a une erreur et le prog s'arrete
Marsh Posté le 20-10-2002 à 18:16:11
la voila ton erreur :
int nbentiers;
int *tab;
nbentiers=0;
tab=0;
tu donnes à un pointeur la valeur 0, et comme tu utilises ce pointeur dans ta fonction de tri à bulles, tu lis ou écris à cet emplacement mémoire, ce qui est interdit !
et en plus, ton tableau n'est meme pas initialisé, la mémoire n'est pas réservée, bref, c pas la joie !!
Marsh Posté le 20-10-2002 à 18:29:38
Ben oui Harkonnen c'est bien pour ca que je suis un débutant
Mais euh qu'est ce t'entend par initialiser le tableau? Reserver la memoire? Pourtant j'ai mis un malloc dans la fonction saisie ca suffit pas?
Sinon le debuggeur m'indique que ca merde au niveau du printf
je comprend tjs pas pkoi
Code :
|
Marsh Posté le 20-10-2002 à 18:36:20
Ca merde au niveau du printf parce que tu demandes à lire une valeur qui se trouve à un emplacement mémoire interdit !
Vire déja le tab=0 dans le main.
Ensuite, toujours dans le main, réserve la mémoire nécessaire à ce tableau, avant la fonction saisir_tableau :
tab=(int *)calloc(nbentiers * sizeof(int) );
j'ai remplacé malloc par calloc pour initialiser ton tableau à 0
vire la ligne équivalente dans ta fonction saisir_tableau
ça devrait déja aller un peu mieux
Marsh Posté le 20-10-2002 à 19:00:38
taz@ppc > Si si j'aime bien aussi les for
Bon merci harkonnen déjà c'est mieu en effet, mais ya encore des pbs: Au moment d'afficher le tableau avant le tri il n'affiche que la premiere valeur de celui ci et n'effectue pas la boucle J'ai essayé avec une boucle for et ca change rien.
Et d'ailleurs au niveau du tri j'ai l'impression que ca ne fonctionne pas non plus .
Marsh Posté le 20-10-2002 à 19:31:04
Ben peut etre mais c'est le boulot qu'on ma donné à faire donc y vaut mieu que je fasse comme on me l'a indiqué
Marsh Posté le 20-10-2002 à 19:51:39
Code :
|
Voila la grosse bourde classique
C'est pas une comparaison, c'est une affectation
Marsh Posté le 20-10-2002 à 19:55:19
Kristoph > Merci
Taz@PPC > Bah justement ya pas de warnings
Mais kk1 peut il m'expliquer pkoi il me fait pas cette boucle ?
Je sais je sais je suis franchement pas doué mais bon...
Marsh Posté le 20-10-2002 à 19:56:37
Lightning >> j'éspère quand même que t'as compris ce que je t'ai dit de faire et pourquoi il faut le faire ! Sinon ça sert à rien...
Marsh Posté le 20-10-2002 à 20:00:06
Oui harknonnen j'ai compris ce que tu ma dis de faire et la je ne referais plus cette connerie
Marsh Posté le 20-10-2002 à 18:04:23
Salut!
Etant débutant en C, je n'arrive pas à comprendre où se situent les erreurs dans ce petit programme.
Il s'agissait de rédiger un programme qui tri les valeurs d'un tableau par ordre croissant.
-----------------------------------------------------------------
-----------------------------------------------------------------
Donc si vous pouviez m'aider ce serait sympa, ca fait déjà 2h que je bloque.
Merci d'avance.
Message édité par *LighTninG* le 20-10-2002 à 18:08:43