wird nichts zugewiesen



  • Na, langsam kommen wir voran.

    Wenn du die Variablen von extern bespielen willst, dann darfst du die nicht in deiner main nochmal local deklarieren. Das musst du dann außerhalb machen.

    Grüße



  • rasidrasid schrieb:

    Diese ganzen Variablen werden aus einer externen Datei schon belegt. Auch deltax und Fs usw. Mach Dir da keine Gedanken, die sind alle mit richtigen Werten belegt. ...

    Ich kann nur das beurteilen was Du uns hier zeigst (gleiches Thema wie zu Beginn). Was Du uns hier zeigst ist definitiv falsch. Reines Zufallsverhalten. Dass Dein Programm in Wirklichkeit ganz anders aussieht kann ich ja nicht wissen.

    Dann zeige uns doch bitte mal wo und wie Du die Werte einliest...

    Ich würde Dir außerdem dazu raten Variablen erst so spät wie möglich zu deklarieren (da wo sie benötigt werden) und dabei auch gleich zu initialisieren. Entweder mit 0 oder am besten gleich mit den richtigen Wert (z.B. durch Returnwert einer Funktion).



  • nein nein, nur die Zahlenwerte kommen von extern, eingelesen werden sie innerhalb des main und müssten doch auch da deklariert werden.

    liebe Freunde, alles funktioniert einwandfrei bis auf diesen cout und auch nur in dieser Schleife. Eine Schleife weiter, wo logarithmiert wird, da sind die Wert einwandfrei enthalten.



  • ACCCCH, ich sag doch es ist früh am Morgen^^

    for(int n=1 ; n < j-1 ; n++)
        {
                if(Bakt[n]>=0)
                {
                      B[m] = Bakt[n];
                      xdot[m] = xdotakt[n];
    
                      nsum=m;            
                      cout << xdot[m] << endl;
                      m++;
                }
         }
    

    versuch mal m erst am Schluss zu erhöhen, dann greift xdot[m] auch nicht auf undefinierten Speicher zu.



  • Dann schreibe das m++ bitte nach dem cout .



  • Freunde das war es 😃

    Mensch so ein kleiner Fehler mit solch einer großen Auswirkung.....jetzt wenn man es sieht.......ist doch klar.

    Dank an Euch



  • Sowas würde man auch schneller sehen, bzw. es würde gar nicht erst passieren können, wenn man etwas besser programmiert - was die Lesbarkeit und die Logik angeht. 😉

    Der Code besitzt noch viel Optimierungspotential! 🙂

    Das m z.B. ist absolut überflüssig!



  • kann durchaus sein :p

    nur durch das m kann ich eine unabhängige von n kreieren, welches ich laufen lassen kann und mit verschobenen Werten füllen kann.

    Danke



  • ... und damit eine neue Fehlerquelle einbauen, die hier sogar zugeschlagen hat! :p

    Warum nicht einfach (n-1) ? Du hast doch zusätzlich noch einen Zähler nsum .

    Edit: (n-1) ist natürlich Quatsch, aber den nsum kannst Du statt m nehmen.

    Tipp: Kürze Deine Variablen nicht so stark ab. Schreibe Sie aus und wähle lesbare/verständliche Namen/Bezeichnungen.



  • Danke. 😃



  • ➡ Bitte! 😃


Anmelden zum Antworten