Sniper_binaire
Messages postés7Date d'inscriptiondimanche 16 septembre 2007StatutMembreDernière intervention20 mai 2009
-
31 déc. 2008 à 09:36
Sniper_binaire
Messages postés7Date d'inscriptiondimanche 16 septembre 2007StatutMembreDernière intervention20 mai 2009
-
1 janv. 2009 à 16:43
Bonjours !
Voila je viens avec un petit problème qui me cause des gros soucis : Un bug !
Voila ce que ce code est censé faire : il prend nos coordonnés (x,y) et un nombre n de points (Xi,Yi)
il doit retourner le point le pus proche....
Le code marche !
mais lorsque je l'exécute dans un programme de test automatique (avec une centaine de valeurs aléatoires) il me fait une erreure fattale....
en espérent pourvoir résoudre ce léger probleme, je vous joint le code (la, maintenant, tout de suite)
cs_goodboy21
Messages postés29Date d'inscriptionsamedi 1 décembre 2007StatutMembreDernière intervention11 avril 2010 31 déc. 2008 à 16:05
salut ton erreur venait du fait que : curseur=n et min =n etaient hors-limite
voici ton code légèrement remanié.
int gps(int x, int y, int n, int** centres)
{
float* dist;
int curseur = n-1;
int min = n-1;
int _l;
dist = (float*)calloc(n,sizeof(float));
for(_l = 0; _l < n; _l++)
dist[_l] = (int)sqrt((x-centres[_l][0])*(x-centres[_l][0])+(y-centres[_l][1])*(y-centres[_l][1]));
for( _l = 0; _l < n; _l++)
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 31 déc. 2008 à 09:44
Salut,
Je n'ai pas de quoi tester ton programme mais pour commencer tu peux ajouter la libération de la mémoire allouée.
En effet tu utilises des calloc mais tu ne fais jamais de free(..), donc tu généres des fuites mémoires.
Sniper_binaire
Messages postés7Date d'inscriptiondimanche 16 septembre 2007StatutMembreDernière intervention20 mai 2009 31 déc. 2008 à 10:56
ben justement, je ne peut pas !
erreur windows, envoyer le rapport d'erruere, et tout sa...
Et pour le debug, je ne peut pas non plus car je teste ce code plusieurs centaines de fois de manière automatique...
sa doit bugger qu'avec certaines valeurs (n, ou je ne sait trop quoi...)
cs_goodboy21
Messages postés29Date d'inscriptionsamedi 1 décembre 2007StatutMembreDernière intervention11 avril 2010 1 janv. 2009 à 13:15
c'est simple , si ton tableau est de taille n, par exemple n=3, les indices de ton tableau son 0,1,2.
l'indice 3 est hors-limite, ds ta fonction 'gps' tu avais curseur=n dc 3 et min=n dc 3 aussi, et lorsque
tu faisais dist[min] ça plantait, car dist[3] .