[gelöst] Zugriffsverletzung bei Funktionsaufruf?



  • Ich habe folgenden Code

    ShapingFunctions::ShapingFunctions() : BeamShapingBasics()
    {
    }
    
    void ShapingFunctions::FresnelTransform(ComplexBeam * inputbeam, ComplexBeam * outputbeam, double z)
    {
    ...
    
    	double x,y;
    	// Plot to Array
    	complex<double> complexvalue;
    	int ArrayPosition;
    	for (int iy=0; iy < size.height(); iy++) 
    	{			
    		y = BeamShapingBasics::PositionRealY(iy);
    ...
    }
    
    double BeamShapingBasics::PositionRealY(const int iy)
    {
    	return (iy - m_CenterPosition.y()) * m_PixelSize.height();		
    }
    

    In der letzten Zeile, beim Aufruf von PositionRealY stürzt das Programm ab mit Zugriffsverletzung. Der Werte von iy ist ok, aber die Funktion wird nicht erreicht.

    Was soll das ?

    EDIT:
    Die Klasse die die Funktion enthält war nicht oder nicht vollständig konstruiert:

    InternalPhaseObject->ComplexBeam.FresnelTransform(...)
    

    Nachdem dieser Pointer auf ein gültiges Object gesetzt war geht es auch.



  • size.height();
    

    Wird diese Funktion korrekt ausgeführt? Das ist ja das einzige in der Schleife, was nicht gehen könnte.

    Wo genau tritt die Zugriffsverletzung auf? Exakt vor dem Funktionsaufruf? Wird iy noch richtig inkrementiert?


Anmelden zum Antworten