Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Segmentation fault am Ende einer for- Schleife

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 <
000
19.05.2005, 17:18 Uhr
stargazer



folgender Quelltextauszug macht Probleme:

C++:
  for (int trial=0;trial<10;trial++){
    //... ein paar zeilen
    std::cout<<trial<<"\n";
  }
  std::cout<<"end";


dies erzeugt folgende Ausgabe:

Zitat:

0
1
2
3
4
5
6
7
8
9
Segmentation fault


Die Textausgabe direkt nach der for-Schleife wird also nicht mehr ausgefuehrt, der letzte Befehl innerhalb der Schleife aber schon.

Kann mir irgendjemand helfen? Ich bin voellig ratlos, woran das liegen koennte


(Ich verwende gcc33 auf einem Linux System)

Dieser Post wurde am 19.05.2005 um 17:19 Uhr von stargazer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.05.2005, 17:32 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


üblicherweise gibt man das endline nicht als string sondern als zeichen aus oder gleich so

C++:
for (int trial=0;trial<10;trial++){
    //... ein paar zeilen
    std::cout<<trial<<std::endl;
  }
  std::cout<<"end";


an sonsten gibts aber an dem von dir geposteten code zunächst nichts auszusetzen... zeig doch mal die "ein paar zeilen" in der forschleife die du nicht hier gepostet hast... (wobei wenn die paar zeilen wirklich vor der ausgabe sind dürfte es an der stelle auch keine segfault geben
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.05.2005, 17:42 Uhr
stargazer



okay, dann noch mal mit aufgefuellter luecke:

C++:
  for (int trial=0;trial<10;trial++){
    pol.setParameter(initialParameter);
    modell(0)=uni(-5+modell(4), 5-modell(4));
    modell(1)=uni(-5+modell(4), 5-modell(4));
    initState(0)=uni(-5+modell(4), 5-modell(4));
    initState(1)=uni(-5+modell(4), 5-modell(4));
    initState(2)=uni(-10,10);  
    initState(3)=uni(-10,10);
    process.setState(initState);
    process.setTarget(modell);
    process.setPolicy(&pol);
    grad1.setProcess(&process);
    grad1.setPolicy(&pol);
    baseEstimate.setGrad(&grad1);
    help=baseEstimate.Conjpomdp(true);
    std::cout<<trial<<std::endl;
  }
  std::cout<<"end";



Die hier auftretenden Variablen/Objekte sind alle vorher deklariert. Ich fuerchte, wenn ich euch die Funktionen mit dazu liefere wird es sehr unuebersichtlich ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.05.2005, 17:46 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
initState(3)=uni(-10,10);



mault er bei sowas nicht irgendwas von L-Value?

probier mal immer zwischen den funktionsaufrufen was auszugeben, dann siehst du wo genau er abstürzt
--
class God : public ChuckNorris { };

Dieser Post wurde am 19.05.2005 um 17:47 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.05.2005, 17:50 Uhr
stargazer



ich habe es mit Ausgaben zwischendurch ausprobiert.... es passiert eben erst am Ende, bis dahin wird alles ausgefuehrt


(und zu der von dir zitierten Zeile: nein tut er nicht, uni ist keine Standardfunktion, sie liefert eine uniform verteilte Zufallszahl, in diesem Fall zwischen -10 und 10)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.05.2005, 17:55 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


klar aber was ist initState(3) ??? das ist ein Funktionsaufruf dem du irgendeine zufallszahl zuweist.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.05.2005, 17:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


kann man ja auch nciht wirklich mehr zu sagen da ich die instanzen/typen der variablen noch die methoden kenne... was passiert denn wenn du die aufrufe zunächst mal alle auskommentierst und dann langsam einen nach den anderen dazu nimmst?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.05.2005, 18:05 Uhr
stargazer



wenn ich die Aufrufe in der Schleife komplett auskommentiere aendert sich gar nichts.
Ich habe allerdings gerade eben eine Zeile weiter oben im Programm (in der ein Objekt einer Klasse angelegt wird, die Klasse erbt von einer die einen Zeiger als member Variable hat, da sist das einzige, wa sich bisher gefunden habe, was sie von anderen unterscheidet) gefunden, die wenn ich sie auskommentiere den Segmentation Fault verschwinden laesst. Es scheint also gar nichts mit der Schleife zu tun zu haben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.05.2005, 23:18 Uhr
virtual
Sexiest Bit alive
(Operator)


Such vor der Schleife....
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: