![]() |
C Sortierschleife
Hab aus Langeweile ein kleines Programm geschrieben, in welches man ein paar Zahlen eingibt, und diese Sortiert angezeigt bekommt. Zumindest in der Theorie.
In der Praxis kommt bei Zeile 45(hier nun gekenntzeichnet mit --->) "C_Projekt funktioniert nicht mehr" und ich weiß nicht wieso. Code:
#include<stdio.h> |
1. Benutz einen Debugger!
Der sagt Dir was falsch gelaufen ist. Du wirst noch auf 1000 weitere Fehler treffen und willst bestimmt nicht für jeden einzelnen einen Thread hier aufmachen. 2. Deine Schleifen sind nicht eingegrenzt, d.h. irgendwann wird nach dem 1001ten Element gefragt, welches eben aus dem "Rahmen" des Arrays springt. 3. Es gibt auch Arrays mit dynamischer Größe. Es ist einfach inneffizient Speicher für 2x1000 Zellen bereit zu stellen, wenn Du nur 10 Zahlen sortieren willst. 4. Refactoring! Jeder Codeabschnitt hat einen Sinn bzw. eine Funktion (Initialisieren,Einlesen, Sortieren, Ausgeben usw.). Entsprechend sollte diese Abschnitte auch Methoden ausgegliedert werden. |
1. ich programmier mit code blocks, beim compelieren wird auf fehler geprüft, da gibts keine.
mittels debugger habe ich eben festgestellt, das der fehler in der einen Zeile da auftritt. angezeigt wieso da ein fehler is, wird mir nicht. 2.bei der einlese schleife hats funktioniert, das sie bei 1000 endet, also dachte ich das brauch ich bei den anderen auch nicht^^ aber stimmt, das funzts ja nur, wegen dem abbruch, oder? 3. werd ich mir mal anschaun 4. Methoden=Funktionen? edit: ich hab die schleifen eingegrenzt(i<1000 statt i>=0) jetzt läuft das programm eiwandfrei durch, die ausgabe enthält allerdings nur 1000 mal '0.00000' edit2: Was wäre Programmieren ohne Flüchtigkeitsfehler? ich hab richtig sortiert, nur am Ende das falsche Array ausgegeben :P Danke nochmal. ~close~ |
Zitat:
im günstisten fall schmiert dir das programm mit ner segmentation violation ab. Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.