IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dev-C++ Discussion :

bug dev-C++ bizarre


Sujet :

Dev-C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par d�faut bug dev-C++ bizarre
    Bonjour � tous, il s'agit de mon premier vrai probl�me en c++, en tant que d�butant.

    Quand j'execute mon programme j'ai le droit � une execution qui semble se d�rouler sans probl�me, puis plante 2 petites secondes plus tard, alors que le programme est normalement fini...
    Le code est en pi�ce jointe.
    J'ai remarqu� qu'en incluant un system("pause"); � la fin du programme, il ne plante pas tout de suite, mais sitot que l'on a appuy� sur une touche quand le programme est lanc�. L'erreur g�n�r� par le d�bogage est la suivante (dev-c++) :
    Une violation d'acc�s (erreur de segmentation) est apparue dans votre programme. J'ai entendu dire qu'il s'agissait d'une mauvaise utilisation de la m�moire, peut-�tre du � mon tableau. j'ai beau chercher je ne vois pas...

    J'ai donc besoin de vous, pro du c++, pour matter le code et me dire si effectivement il y a une ligne qui pose probl�me, ou pour compiler �a chez vous et me dire si c'est une erreur inh�rente � mon syst�me ou non.
    Merci d'avance.
    Fichiers attach�s Fichiers attach�s

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    D�bordement de tab (eh oui, en C++, les tableaux vont de 0 � N-1), qui fusille donc l'adresse de retour de main() dans la pile.

    Donc, main() retourne vers n'importe quoi->plantage.
    Tu viens de d�couvrir le secret de l'attaque de piratage informatique par d�bordement de tampon ("buffer overflow").
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre chevronn�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par d�faut
    Je comprends pas comment ton programme peut s'ex�cuter sans souci alors que :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    int tab[10][10];
    
    //plus loin :
    for(i = 0; i<= 10; i++) {
        //...
        tab[i][10] = -1;
    }

  4. #4
    Membre habitu�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par d�faut
    ah ah !!!
    Eh EH !!!
    Bon ok...
    J'ai remplac� tab[10][10] par tab[11][11].
    �a marche nettement mieux maintenant.
    Merci � vous !!! Super rapides !

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    bolhrak : Comme indiqu�, il s'ex�cutait sans soucis jusqu'au retour de main(), et l� seulement �a partait en vrille.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [AC-2003] Bug d'openform bizarre
    Par Jojo____ dans le forum IHM
    R�ponses: 1
    Dernier message: 03/05/2012, 10h19
  2. [MySQL] bug mysql vraiment bizarre ?
    Par maxence64 dans le forum PHP & Base de donn�es
    R�ponses: 7
    Dernier message: 08/06/2011, 18h13
  3. Bug Struts/Tiles bizarre
    Par madjidri dans le forum Struts 1
    R�ponses: 1
    Dernier message: 08/10/2008, 16h16
  4. [Dev-cpp]bug � l'ex�cution
    Par lex_2005 dans le forum C
    R�ponses: 3
    Dernier message: 08/01/2006, 23h22
  5. [Perf/Bug??]9.2.0.1-Probl�me de performance bizarre.
    Par Le nain Attila dans le forum Oracle
    R�ponses: 25
    Dernier message: 07/12/2005, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo