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

C++Builder Discussion :

exception stack overflow


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut exception stack overflow
    bonsoir a tousse j'ai un programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
     int position;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
     
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int op=1;
       while(op<=6)
       { switch(op)
         {
          case 1:  position=Memo1->Lines->Text.Pos("les");
             if (position!=0)
              {Memo1->SetFocus();
               Memo1->SelStart=position-1;
               Memo1->SelLength=3;
                Memo1->ClearSelection(); op++; break;
                }else {op++;break; }
     
     
     
     
       case 2:  position=Memo1->Lines->Text.Pos("le");
             if (position!=0)
              {Memo1->SetFocus();
               Memo1->SelStart=position-1;
               Memo1->SelLength=2;
                Memo1->ClearSelection(); op++; break;
                }
                else {op++;break; }
     
     
         case 3:  position=Memo1->Lines->Text.Pos("la");
             if (position!=0)
              {Memo1->SetFocus();
               Memo1->SelStart=position-1;
               Memo1->SelLength=2;
                Memo1->ClearSelection(); op++; break;
                }
                 else {op++;break; }
     
         case 4:  position=Memo1->Lines->Text.Pos("une");
             if (position!=0)
              {Memo1->SetFocus();
               Memo1->SelStart=position-1;
               Memo1->SelLength=3;
                Memo1->ClearSelection(); op++; break;
                }else {op++;break; }
     
          case 5:  position=Memo1->Lines->Text.Pos("un");
             if (position!=0)
              {Memo1->SetFocus();
               Memo1->SelStart=position-1;
               Memo1->SelLength=2;
                Memo1->ClearSelection(); op++; break;
                }
                else {op++;break; }
     
      default :  position=Memo1->Lines->Text.Pos("des");
             if (position!=0)
              {Memo1->SetFocus();
               Memo1->SelStart=position-1;
               Memo1->SelLength=3;
                Memo1->ClearSelection(); op++; break;
                }
                else {op++;break; }
     
              }
               }
     
     
    Button1Click(Sender);
     
    }
    quand j'ai exécuté se programme une exception( stack overflow)arrive qui arrête l'exécution. comment remédier à cette exception???????????????

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Tu appelles Button1Click(Sender); dans la fonction Button1Click. Tu génères un loop infini.

    PS: quand tu mets du code utilises la balise CODE

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Ca devrait pouvoir s'envisager autrement (si j'ai bien tout compris ... ???) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
    {
    TReplaceFlags Flags = Flags << rfReplaceAll;
    AnsiString N;
    for(int line = 0; line < Memo1->Lines->Count; line++)
        {
        N = Memo1->Lines->Strings[line];
        N = StringReplace(N, "les ", "", Flags);
        N = StringReplace(N, "une ", "", Flags);
        //..
        //..
        Memo1->Lines->Strings[line] = StringReplace(N, "un ", "", Flags);
        }
    }
    A plus !

Discussions similaires

  1. exception: Stack overflow
    Par ame_12 dans le forum C++
    Réponses: 6
    Dernier message: 01/09/2013, 18h43
  2. Exception de première chance : stack overflow
    Par Far_Away dans le forum C++
    Réponses: 9
    Dernier message: 02/02/2011, 20h22
  3. pourquoi ai-je une exception stack overflow ?
    Par AsmCode dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/06/2010, 12h44
  4. [Form.Close] System Stack Overflow Exception
    Par Ticoche dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/01/2008, 18h13
  5. Stack overflow
    Par portu dans le forum Langage
    Réponses: 3
    Dernier message: 26/11/2003, 15h16

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