Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Fehlermeldungen beim Ausführen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
29.12.2005, 14:38 Uhr
Noob2k5



Ahso, ok. Nagut, dafür hab ich jetzt eine Fehlermeldung, ich hab aus

C++:
if (i=10)
            exit = true;    


jetzt

C++:
if (i==10)
            exit = true;    
gemacht und das hochzählen von i aus der if-Anweisung genommen, so das ich jetzt eigentlich 10 erreichen sollte.

Beim Ausführen bekomme ich jetzt folgende Meldung "Run-Time Check Failure #2 - Stack around the variable 'zahlen' was corrupted."

Kann mit der Meldung nicht wirklich viel anfangen.

EDIT:
Bei einem cout gibt er mir die zahlen 1 - 9 aus, aber anstatt der 10 wirft er irgendeine ziemlich lange, negative, Zahl aus.

Dieser Post wurde am 29.12.2005 um 14:55 Uhr von Noob2k5 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
29.12.2005, 15:01 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Hmm zeig nochmal den ganzen Code wie du ihn jetzt hast
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
29.12.2005, 15:52 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat:

EDIT:
Bei einem cout gibt er mir die zahlen 1 - 9 aus, aber anstatt der 10 wirft er irgendeine ziemlich lange, negative, Zahl aus.

Bestimmt eine Bereichsüberschreitung beim Zugriff auf Dein Array.
Hast Du Dich mal mit dem Bubblesort Algorithmus auseinander gesetzt?
Hier mal die EINFACHSTE Variante:

C++:
void bubble_sort (int, int[]);
int main(int argc, char* argv[])
{
   int zahlen[10]= {10,9,8,7,6,5,4,3,2,1};
   bubble_sort(10,zahlen);
   for (int i=0;i<=9;i++)
    std::cout << zahlen[i] << std::endl;
    int a;
    std::cin >> a;
   return 0;
}

void bubble_sort (int anz, int a[])
{
   int x;
   for (int i=2; i<= anz; i++)
   {
     for (int j= anz; j >= i-1; j--)
       if (a[j-1] > a[j])
       {
         x=a[j-1];
         a[j-1]=a[j];
         a[j]=x;
       }
    }
}


Mehr dazu auf virtual's hp:
www.hipphampel.de/index.php?item=cpp/sorting
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 29.12.2005 um 15:53 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
29.12.2005, 17:00 Uhr
kermit



hi,

so gehts auch ( sollte ungefaehr noch dem original entsprechen )


C++:
#include <iostream>

using namespace std;

int main()
{
    int zahlen[10]= {3,9,7,8,6,5,4,10,2,1};

    bool getauscht=false;
    int i = 0, temp = 0;

    cout<<"vorher "<<endl;
    for(i=0; i<=9;i++)
        cout<<zahlen[i]<<", ";
    
    i=0;  
    while (i>=0)   {
        if (zahlen[i] > zahlen[i+1] )   {
            getauscht=true;
            temp = zahlen[i];
            zahlen[i] = zahlen[i+1];
            zahlen[i+1] = temp;
        }
        if (i<8)
           i++;
        else  
          !getauscht? i=-1 : i=0, getauscht=false;
    }

    cout<<endl<<"sortiert "<<endl;
    for(i=0; i<=9;i++)
        cout<<zahlen[i]<<", ";
        
    cout<<endl;
    system("pause");
    return 0;
}


Dieser Post wurde am 29.12.2005 um 17:02 Uhr von kermit editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
29.12.2005, 18:00 Uhr
Noob2k5




Zitat von Noob2k5:


C++:
        if (zahlen[i] > zahlen[i+1] && i <=9) <------------- 9 ist falsch, muss 8 sein
        {
            temp = zahlen[i];
            zahlen[i] = zahlen[i+1];
            zahlen[i+1] = temp;
            //hochzählen des Zählers
        }





Hab den Fehler gefunden.

Wenn i = 9 ist rennt er in die if-anweisung rein, da das array 10 elemente hat, legt er sich dann mit der Anweisung [i+1] auf die Nase.

Danke für eure Hilfe, das etwas so einfaches so kompliziert sein kann ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: