begin process at 2012 05 30 08:51:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Segmentation en mettant en boucle 5000 fois mon algo


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Segmentation en mettant en boucle 5000 fois mon algo

vendredi 13 juillet 2007 à 17:34:11 | Segmentation en mettant en boucle 5000 fois mon algo

timekill

langage C
Cygwin
Windows 2000

Bonjour à tous,

J'ai un petit problème. J'ai implémenté un algo de traitement d'image qui semble marcher. Afin de tester sa robustesse, dans mon main j'ai bouclé 100 fois, 1000 fois, 2000 fois, 3000 fois, 4000 fois sur mon algo sans qu'il plante. En le lançant 5000 fois il plante. J'ai soupçonné une fuite mémoire mais il semblerait que ce ne soit pas le cas. J'ai vérifié avec un code fourni à cette adresse :

http://www.cppfrance.com/codes/SUREVEILLER-ALLOCATIONS-MEMOIRE_32481.aspx

qui permet de mettre dans un fichier texte tout ce qui est alloué et désalloué durant l'execution du prog. Et tout semble bon a la fin de chaque tour de boucle ma memoire revient a 0.
Je n'ai pas pu faire une boucle de 5000 itérations avec ses fonctions de controle car le fichier texte généré devient trop gros à gérer.

Avez vous une idée vers quoi je pourrais me tourner pour résoudre mon pb ?

Merci d'avance.
vendredi 13 juillet 2007 à 19:27:04 | Re : Segmentation en mettant en boucle 5000 fois mon algo

BruNews

Administrateur CodeS-SourceS
il n'y a pas de devin ici, sans voir ton code personne ne pourra rien dire.

ciao...
BruNews, MVP VC++
vendredi 13 juillet 2007 à 20:23:33 | Re : Segmentation en mettant en boucle 5000 fois mon algo

vicenzo

Membre Club
SI SI BruNews, ....

.... Ähum... Ahum....

Je vois..... je vois.... un bug à la ligne 5678 !!!!

Bon, trêve de plaisanterie, laissons Mme Irma au placard, il est le code ?
vendredi 13 juillet 2007 à 23:03:58 | Re : Segmentation en mettant en boucle 5000 fois mon algo

timekill

je veux bien vous le filer mais y a pas mal de fichiers. Je vais mettre un lien rapidshare mais je sais pas si le forum accepte ... Dans le main la boucle est sur 100 itérations en mettant 5000 ca passe plus. http://rapidshare.com/files/42754369/source_rep_13-07-07.zip.html
vendredi 13 juillet 2007 à 23:09:06 | Re : Segmentation en mettant en boucle 5000 fois mon algo

timekill

par contre y a des fonctions mwatch dans mon main qui peuvent etre enlevées elles ecrivent dans un fichier texte les allocations mémoires etc... (avec 5000 itérations le fichier txt sera trop gros pour être analysé)
vendredi 13 juillet 2007 à 23:39:48 | Re : Segmentation en mettant en boucle 5000 fois mon algo

luhtor

Bas, je compte pas passez 3 jours pour comprendre ton code :) donc j'ai peur que tu sois tout seul sur ce coup. La seule chose que tu peux faire, c'est télécharger un bon debuggeur, et au boulo. Il te faut des messages d'erreurs supplémentaires.
samedi 14 juillet 2007 à 11:55:18 | Re : Segmentation en mettant en boucle 5000 fois mon algo

vicenzo

Membre Club
Bon, j'ai jeté un coup d'oeil à ton source et je me demande comment tu a pu compiler ca et avec quel compilo..

Ton compilo est compatible C99 a cause du "inline"... Ah, je viens juste de remarquer que tu as indiqué 'Cygwin"...

Tu déclare des fonctions dans des fichiers c sans avoir une définition dans un header .. Ton linker bosse pour toi et te rattrape le coup mais il ne devrait pas car par exemple tu declares une fonction GrayIntImage__delete avecdeux paramètres et dans ton fichier main.c, tu l'appele avec un seul paramètres... Ce code n'aurait pas du compiler !!! Et sans parler la tonne de warnings de casts unsafe, ....

J'ai modifié (car VS2005 ne supporte pas C99 et pour une fois je les comprends) et corrigé ton code (gestion définition / déclartion de fonction, ..) pour pouvoir le compiler avec VS2005 et je n'ai aucun problème j'ai fait une bulce jusqu'a 20000 sans soucis..

Remarques : y a des choses qui ralentissent grandemment le code   et y a matiere à beaucoup optimiser le code ... sur ma machine ton code avec une boucle de 6000 items prend 200 sec.... Peut meux faire...

Ma foi, déja corrige l'appel à la fonction GrayIntImage__delete...

Si tu veux le code modifié, mail moi...
samedi 14 juillet 2007 à 15:58:05 | Re : Segmentation en mettant en boucle 5000 fois mon algo

luhtor

Pour l'histoire des fonctions sans déclaration dans le header. Ya pas de soucis. Si ces fonctions sont juste utilisées dans ce meme fichier.
samedi 14 juillet 2007 à 18:51:07 | Re : Segmentation en mettant en boucle 5000 fois mon algo

vicenzo

Membre Club
Merci luhtor.... mais cela va de soi !

Mais le code de timeKill définissait des fonctions dans un source A non  déclarées ou redeclarée différemment dnas un header A et appelée dans un source B selon le prototypage du source A...

De plus, même fichier ou pas on s'en fout ! Le seul impératif du compilo est de connaitre le prototype d'une fonction lors de son appel ! C'est tout.

Si tu déclare une fonction dans le même source mais après l'appel cela ne compilera pas. Donc ton assertion telle quelle est fausse.

Bonne journée ensoleillée...


dimanche 15 juillet 2007 à 00:33:51 | Re : Segmentation en mettant en boucle 5000 fois mon algo

luhtor

Tu chipottes :) Tu peux mettre ta définition dans le .cpp. L'intéret c'est que la fonction n'est pas visible ailleurs que dans ton fichier .cpp, mais bon tout le monde le sait ca et c'est pas la discution.

1 2

Cette discussion est classée dans : boucle, algo, semble, segmentation, mettant


Répondre à ce message

Sujets en rapport avec ce message

P'tit probleme avec le site il me semble [ par Stoomm ] Slt, en effet, quand on post un message et que l'on nous repond, on obtient un mail de : "visual basic code sources". Donc faudrais peut etre voir a algo des [ par fredson ] je recherche le programme pour trouver divers clés de décryptage avec l'algo des(cryptage) La boucle FOR [ par C++ ] Ou est l erreur svp :for (int i=0;i MessageBox (i); une aide pour écrire un algo et un prog sur le nbr premiers [ par Julius Caesar ] Bonjour, je n'arrive pas écrire l'algo et le prog de ce sujet:"Ecrivez un algo et un prog, qui affiche les nbrs premiers inferieurs à un entier n (ave Intercepter la touche ESC [ par mindark ] BonjourVoila, j'ai un programme qui execute une boucle d'environ 5 mins. Et je voudrais que cette boucle soit executee plusieurs fois, jusqu'a ce que je suis desespere, algo d'incrementation de tableau [ par scorpiwolf ] Je deviens fou, je suis en train de faire la division euclidienne avec des nombres immenses, ils sont stockés dans des tableaux. Bon bref le probleme Algo minimax, negamax [ par Galett ] Salut, je m'fai un ti prog en ce moment, mais G des probs avec mon algo minimax, G tester le negamax aussi et ca change po.Je recherche en fait un alg Problème avec une boucle while [ par arconius ] voilà j'ai fait un prog où l'on tire des dés mais j'ai un problème avec ma boucle while car au lieu de me donner un chiffre aléatoire à chaque fois il pourquoi aprés avoir fait une boucle mon textbackground prend tout l'écran ? [ par arconius ] Voila mon prog et après avoir fait une boucle mon text background prend tout l'écran si quelqu'un à une solution se serait sympa merci d'avance#includ Copie directe d'un tableau vers un autre (sans boucle) [ par NiFF ] Existe-t-il une fonction C qui me permettrait de copier un tableau vers un autre de même dimension,et ce sans avoir à traiter tous les items de ce tab


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales