dýnamic_cast - debug error in runtime



  • Was geht schief bei mir? Wenn Code ist in ein f.cpp gebracht – es läuft. Wenn getränt ist(f.cpp, f.h):
    - warning C4541: 'dynamic_cast' für polymorphen Typ 'KFZ' mit /GR- verwendet;
    unvorhersehbares Verhalten möglich
    - stop in runtime an die Stelle =>
    pvBlk = _heap_alloc_dbg(nSize, nBlockUse, szFileName, nLine);

    Code selbst:

    KFZ* autos[100];
    PKW* pkwp=NULL;
    LKW* lkwp=NULL;
    
    // Tabelle initialisieren 
    for(int i=0; i<100; i++)	
      autos[i]=NULL;
    
    // Default Einträge
    autos[0] = new PKW("capri",0,1,"ford");
    autos[1] = new PKW("1500sedan",0,3,"mazda");
    autos[2] = new LKW(5,21,5,"scania");
    autos[3] = new LKW(3,32,4,"man");
    autos[4] = new PKW("240D",1,2,"mercedes");
    autos[5] = new LKW(2,7.5,6,"iveco");
    
    // in main - PKW auszählen
    int n=0;
    for(int i=0; autos[i]; i++)		
    {
      if(lkwp=dynamic_cast<PKW*>(autos[i]))
      n++;
    }
      cout<<"PKW: "<< n <<endl;
    

    Wo liegt das Problem und wie kann es umgehen? Danke!



  • Der Compilerschalter /GR ist nicht gesetzt, um die Laufzeitüberprüfung zu aktivieren. Das kannst du in den Projektoptionen aktivieren.



  • Es funktioniert. Danke dir. 🙂


Anmelden zum Antworten