Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Run-Time Check Failure #3 - Kein Plan was machen

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
06.07.2010, 13:56 Uhr
~CoolJoe
Gast


Hi zusammen, ich habe keine Ahnung was ich tun soll, ich verzweifle echt:

Bei diesem doch eher leichten Programm, mit dem ich mittels Arrays die Flugbahn von einem Massenpunkt berechnen möchte, kommt beim Ausführen immer der gleiche Fehler:

Run-Time Check Failure #3 - The variable 'i' is being used without being initialized.

Dabei zeigt ein kleiner gelber Pfeil links am Rand auf die markierte Zeile



C++:
#include <cstdlib>
#include <stdio.h>
#include <string>
#include <windows.h>
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;
int main()
{
    
    FILE *outp, *inp;
    
    int n;
    float dt;

        inp=fopen("Inputn.txt","r");
        fscanf(inp,"%i",&n);
        fclose(inp);

    float *ax=new float[n];
    float *vx=new float[n];
    float *sx=new float[n];
    float *ay=new float[n];
    float *vy=new float[n];
    float *sy=new float[n];
    float sx0;
    float sy0;
    float Winkel;
    float ObereGrenze;
    float Veraenderungt;
    float mB;
    float rB;
    float v0;
    

    //{
        inp=fopen("Input.txt","r");
        fscanf(inp," %f %f %f",&sx0,&sy0,&v0);
        fclose(inp);


    Winkel=15*3.14159265/180;

    ax[0]=0;
    ay[0]=-9.81;
    vx[0]=v0*cos(Winkel);
    vy[0]=v0*sin(Winkel);
    sx[0]=sx0;
    sy[0]=sy0;
    

    int i;

for (int i=0; i<n-1; i++);
{

    ax[i+1]=0; // <-- hier
    ay[i+1]=-9.81;
    vx[i+1]=vx[i]+ax[i]*dt;
    vy[i+1]=vy[i]+ay[i]*dt;
    sx[i+1]=sx[i]+vx[i]*dt;
    sy[i+1]=sy[i]+vy[i]*dt;

}






for (int i=0; i<n; i++)
{
        outp=fopen("Output.txt","w");
        fprintf(outp,"%f %f",sx[i],sy[i]);
        fclose(outp);
}
    
        


        cout<<"Ende \n\n";

    

delete[] ax;
delete[] vx;
delete[] sx;
delete[] ay;
delete[] vy;
delete[] sy;

return 0;
}



Dieser Post wurde am 06.07.2010 um 13:58 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.07.2010, 13:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi:


C++:
for (int  i=0; i<n-1; i++); // <-- ; ist falsch



dadurch nimmt er dir für den nachfolgenden block das uninitialisierte int i von paar zeilen davor.
--
class God : public ChuckNorris { };

Dieser Post wurde am 06.07.2010 um 13:59 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.07.2010, 14:01 Uhr
~CoolJoe
Gast


Und was ist daran falsch, bzw. was muss ich ändern?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.07.2010, 14:10 Uhr
~CoolJoe
Gast


Oh, habe verstanden, der Semikolon muss weg.
Vielen Dank, doch wenn den Semikolon lösche läuft das Programm noch immer nicht, sondern dann kommt:
Debug Error

Program: ...Studio2008...exe

HEAP CORRUPTION DETECTED: after normal block (#125) at ...
CRT detected that the application wrote to memory after end of heap buffer.

(Press Retry to debug the application)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.07.2010, 14:33 Uhr
Hans
Library Walker
(Operator)


Hi,


Zitat von ~CoolJoe:
Oh, habe verstanden,

glaube ich nicht, denn an dieser Stelle:

C++:
int i;

for (int i=0; i<n-1; i++);

muss entweder die Zeile mit int i weg, oder aber die int-deklaration aus dem Schleifenkopf, d.h. anstatt for (int i=0; ... schreibst du nur for (i=0; ...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 06.07.2010 um 14:34 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.07.2010, 14:38 Uhr
~CoolJoe
Gast


Ok, habe beides durchgespielt aber das Problem mit dem Debug Error ist immer noch da =(
Der Runtime Check ist aber weg, danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.07.2010, 12:24 Uhr
~toxic
Gast


hallo, also bei mir funktioniert folgender code, ohne fehler/warnungen
( habe natürlich deine "input.txt" nicht )

C++:
// _testConsole.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <cstdlib>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <iostream>
#include <fstream>
#include <math.h>

int _tmain(int argc, _TCHAR* argv[])
{

//    FILE *outp, *inp;

    int n = 2;
    double dt = 1.0; // <-- war uninitialisiert !
    
//    inp = fopen( "Inputn.txt", "r" );
//    fscanf( inp, "%i", &n );
//    fclose( inp );
    
    double *ax = new double[n];
    double *vx = new double[n];
    double *sx = new double[n];
    double *ay = new double[n];
    double *vy = new double[n];
    double *sy = new double[n];
    double sx0 = 20.0;
    double sy0 = 30.0;
    double Winkel;
//    double ObereGrenze;
//    double Veraenderungt;
//    double mB;
//    double rB;
    double v0 = 30.2;


//    inp = fopen( "Input.txt","r");
//    fscanf( inp, " %f %f %f", &sx0, &sy0, &v0 );
//    fclose( inp );
    
    
    Winkel = 15.0 * 3.14159265 / 180.0;
    
    ax[0] = 0;
    ay[0] = -9.81;
    vx[0] = v0 * cos( Winkel );
    vy[0] = v0 * sin( Winkel );
    sx[0] = sx0;
    sy[0] = sy0;

    
    int i;
    
    for ( i = 0; i < n-1; i++ )
    {
        
        ax[i+1] = 0;
        ay[i+1] = -9.81;
        vx[i+1] = vx[i] + ax[i] * dt;
        vy[i+1] = vy[i] + ay[i] * dt;
        sx[i+1] = sx[i] + vx[i] * dt;
        sy[i+1] = sy[i] + vy[i] * dt;
        
    }
/*
    for ( i = 0; i < n; i++ )
    {
        outp=fopen("Output.txt","w");
        fprintf(outp,"%f %f",sx[i],sy[i]);
        fclose(outp);
    }
*/

    std::cout << "Ende" << std::endl;
    
    delete [] ax;
    delete [] vx;
    delete [] sx;
    delete [] ay;
    delete [] vy;
    delete [] sy;
    
    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: