|
C++ Segmentation fault was zum geier...
|
|
 16 Apr 2008, 19:01
|

4. Schein    
Punkte: 470
seit: 01.10.2003
|
hallo leute... ich schon wieder mit ner c++ frage... ich hab mein kleines feines programm... das ganze is ein math. alg. man stelle sich ein rechteck vor, in dem ein punkt mit best. eigenschaften liegt ich versuche den punkt mittels einschließung zu finden... also zerteile ich das rechteck in 4 unterrechtecke usw... der rödelt das ganze gut durch, bis er auf einmal "Segmentation fault" liefert... nun die frage: WAS ZUM GEIER IS DAS?" das komische is halt, dass der ploötzlich und mittendrin aufhört... durch schrittweise ausgaben auf dem bildschirm, weiß ich ungefähr, wo der hängt... CODE double allesdoof(double* ai, int A, int B, int n, double N, int k){ cinterval pz,pA, pB; cout << "hallo" << endl; cout << "N: " << N << endl; cout << "n: " << n << endl; cout << "k: " << k << endl; cout << "ai: " << ai[0] << endl; cout << "A: " << A << endl; cout << "B: " << B << endl;
und ausgegeben wird: hallo Segmentation fault davor kommt der ohne probleme durch diese stelle... woran kann es denn liegen??? danke m.
|
|
|
Antworten(1 - 14)
|
|
 16 Apr 2008, 19:11
|

4. Schein    
Punkte: 470
seit: 01.10.2003
|
Zitat(CoolSun @ 16 Apr 2008, 19:08) Wirds nicht mal langsam Zeit für ein gutes Buch? Oder nen Exma-internen Informatik-FB?  naja... das sind schon spezielle sachen... is ja nicht, dass ich mir ne for-schleife erklären lasse... abgesehen davon sollte ein forum dafür da sein, oder...
|
|
|
|
|
 16 Apr 2008, 19:20
|

Straight Esh         
Punkte: 14030
seit: 01.10.2003
|
am Besten erst einmal Bekanntschaft mit einem Debugger schließen, um das Problem differenziert darzustellen. valgrind oder gdb sind gute Adressen. Hilfreich könnte auch strace sein.
Ohne weitere Infos wirste bei c++ kaum dahinter kommen, wo dein Problem liegt. Segmentation fault deutet doch stark auf einen fehlerhaften Speicherzugriff zu.
--------------------
bonum agere et bonum edere, sol delectans et matrona delectans (Verlängere dein Leben indem du hier und hier und hier und hier klickst!)
|
|
|
|
|
 16 Apr 2008, 19:42
|

d00fk0pp     
Punkte: 710
seit: 09.05.2005
|
Zitat(marco @ 16 Apr 2008, 19:11) ... is ja nicht, dass ich mir ne for-schleife erklären lasse... abgesehen davon sollte ein forum dafür da sein, oder...  Wir erledigen aber nicht deine Belegarbeiten...
|
|
|
|
|
 16 Apr 2008, 19:49
|

4. Schein    
Punkte: 470
seit: 01.10.2003
|
Zitat(CoolSun @ 16 Apr 2008, 19:42) Wir erledigen aber nicht deine Belegarbeiten...   oh... entschuldigung... haste ja bis jetzt auch ni gemacht... es gibt halt studenten, die anderen helfen, wenn die ne frage haben auf einem gebiet, wo se ni bis ins kleinste detail fit sind... wenn du nicht helfen willst, dann mach es nicht und fang nicht an zu weinen...
|
|
|
|
|
 16 Apr 2008, 23:08
|
3. Schein   
Punkte: 235
seit: 26.09.2006
|
-
Dieser Beitrag wurde von Knurt: 14 Mar 2009, 20:06 bearbeitet
|
|
|
|
|
 16 Apr 2008, 23:32
|

Exmatrikulator         
Punkte: 2083
seit: 17.08.2006
|
Also. Wie schon angesprochen wurde. Buch hilft. Und segfault ist nix "spezielles". Du greifst auf Speicherbereiche zu, in denen du nichts zu suchen hast. Durch deine Iteration - wie auch immer die aussieht, werden sicher irgendwelche Pointer oder Zählvariablen verändert. Entweder greift irgendwann dein Pointer in geschütze Bereiche oder eine deiner Zählvariablen wird über ihre Obergrenze hinaus erhöht. Leider hast du ja nur eine nichtssagende Dummyfunktion gepostet. Da fliegt vll. der Fehler aber die Ursache liegt anderswo. Für Programmierfragen wende dich doch mal an die Kompetenzen im HnH  btw. "Was ist das?" Das ist dasedit: Sehe gerade, dass aktsizr ja schon alles gesagt hat. Naja. Doppelt und so.. Dieser Beitrag wurde von stabilo: 16 Apr 2008, 23:34 bearbeitet
--------------------
|
|
|
|
|
 17 Apr 2008, 15:11
|

4. Schein    
Punkte: 470
seit: 01.10.2003
|
kann es sein, dass es sich dabei um ein mac-problem handelt? hab bei ein bissl googlen festgestellt, dass es ziemlich viele mac-user mit diesem problem gibt...
kennt sich da jemadn aus, um das zu beheben??? danke m.
ps: ich greif definitiv auf keine resource zu, die nicht auch richtig ist...
ich lass mir doch vor dem funk-aufruf alle variablen die da reinkommen ausgeben... und als erstes nach den funk-start auch nochmal und da kommt der fehler... das is ja das komische...
es kann sein, dass er speicherprobleme hat, aber was kann ich dagegen machen... ich programmier meiner meinung nach sehr sauber... und da kommt so ein mist völlig ungelegen...
alles scheiße, dein marco...
|
|
|
|
|
 17 Apr 2008, 15:51
|

No-Know-How     
Punkte: 631
seit: 27.04.2007
|
Zitat(marco @ 17 Apr 2008, 15:11) kann es sein, dass es sich dabei um ein mac-problem handelt? Erst den Fehler bei sich selbst (und im eigenen Code suchen), dann Hersteller verunglimpfen. Wenn der Fehler tatsächlich in der Funktion auftritt und danach nix relevantes kommt kann nur CODE cout << "ai: " << ai[0] << endl; das Problem sein; ai zeigt auf einen Speicherbereich auf den dein Programm nicht zugreifen darf. Da mußt du in Ruhe nochmal schauen ob du falsch/nicht allokiert hast oder den ersten Parameter falsch übergibst...
--------------------
|
|
|
|
|
 17 Apr 2008, 15:53
|

Straight Esh         
Punkte: 14030
seit: 01.10.2003
|
Zitat(marco @ 17 Apr 2008, 15:11) es kann sein, dass er speicherprobleme hat, aber was kann ich dagegen machen... ich programmier meiner meinung nach sehr sauber... und da kommt so ein mist völlig ungelegen...  Was kann man bloss dagegen machen? Erstmal versuchen mit diesem Programm - wie nennen es doch alle? - Debugger klar zu kommen. Und wenn du das verstanden hast, dann kannst du damit beginnen das Problem einzukreisen. Und wenn du dann genau weißt was das Problem ist, kannst du hier nocheinmal fragen, was man dagegen tun kann.
|
|
|
|
|
 17 Apr 2008, 15:59
|

4. Schein    
Punkte: 470
seit: 01.10.2003
|
Zitat(Chris @ 17 Apr 2008, 15:53) Was kann man bloss dagegen machen? Erstmal versuchen mit diesem Programm - wie nennen es doch alle? - Debugger klar zu kommen. Und wenn du das verstanden hast, dann kannst du damit beginnen das Problem einzukreisen. Und wenn du dann genau weißt was das Problem ist, kannst du hier nocheinmal fragen, was man dagegen tun kann.  also ich habs mir mal ein bissl mit m debugger angeschaut... und der läuft genau bis dahin sauber durch und verliert einfach durch den funk-aufruf die werte... das ganze passiert mehrmals, weil rekursiv... also greife ich die ganze zeit auf die werte zu und auf einmal will er nicht mehr... mir scheint, dass es ein mac-problem is... vielleicht mach ich das ganze nächste woche mal auf nem linux ding... ma guggen... aber vielleicht hat ja ein apfel-mensch nen hinweis... ich wette, dass ich da nur am anfang eine befehlszeile einfügen muss, damit dieses mac-problem unterbunden wird...
|
|
|
|
|
 17 Apr 2008, 17:04
|
Avatar-Untertitel       
Punkte: 1459
seit: 03.04.2006
|
Zitat(marco @ 17 Apr 2008, 15:59) also ich habs mir mal ein bissl mit m debugger angeschaut... und der läuft genau bis dahin sauber durch und verliert einfach durch den funk-aufruf die werte... das ganze passiert mehrmals, weil rekursiv... also greife ich die ganze zeit auf die werte zu und auf einmal will er nicht mehr... mir scheint, dass es ein mac-problem is... vielleicht mach ich das ganze nächste woche mal auf nem linux ding... ma guggen... aber vielleicht hat ja ein apfel-mensch nen hinweis... ich wette, dass ich da nur am anfang eine befehlszeile einfügen muss, damit dieses mac-problem unterbunden wird...  ...das ist ganz sicher kein mac Problem.
|
|
|
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder:
|