_
toggle menu eXmatrikulationsamt.de
online: 379 gäste

> C++ Segmentation fault was zum geier...

Themen Layout: Standard · Linear · [Outline] Thema abonnieren | Thema versenden | Thema drucken
post 16 Apr 2008, 19:01
avatar
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.


ProfilPM
AntwortenZitierenTOP
 
Antworten
post 16 Apr 2008, 23:32
avatar
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 smile.gif

btw. "Was ist das?" Das ist das

edit:
Sehe gerade, dass aktsizr ja schon alles gesagt hat. Naja. Doppelt und so..

Dieser Beitrag wurde von stabilo: 16 Apr 2008, 23:34 bearbeitet


--------------------
bild kann nicht angezeigt werden
ProfilPM
AntwortenZitierenTOP
post 17 Apr 2008, 15:11
avatar
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...
ProfilPM
AntwortenZitierenTOP
post 17 Apr 2008, 15:51
avatar
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...


--------------------
Studentenclub Count Down
The future is already here - it is just unevenly distributed. William Gibson
ProfilPM
AntwortenZitierenTOP
Beiträge
marco   C++ Segmentation fault   16 Apr 2008, 19:01
Knurt   -   16 Apr 2008, 23:08
aktsizr   ...das ist ganz sicher kein mac Problem.   17 Apr 2008, 17:04
CoolSun   int a hat aber nur 32.000 ???   17 Apr 2008, 19:27
wicked   "Kommt drauf an", sowohl C als auch C++...   17 Apr 2008, 19:50
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: