C++ Float Error Violation Before Time Variation

I’m running a timeline with dynamic curves and created key events in BluePrint to go updating the power curves at runtime …

After a few seconds I get transiting between one event and another end up getting a violation error in function below … specifically the line:

Tarray Curves GetCurves = ();

This Function:

void UCurveBase::GetTimeRange(float& MinTime, float& MaxTime) const
    {
    	TArray<FRichCurveEditInfoConst> Curves = GetCurves();
    	if(Curves.Num() > 0)
    	{
    		check(Curves[0].CurveToEdit);
    		Curves[0].CurveToEdit->GetTimeRange(MinTime, MaxTime);
    
    		for(int32 i=1; i<Curves.Num(); i++)
    		{
    			float CurveMin, CurveMax;
    			check(Curves[i].CurveToEdit != NULL);
    			Curves[i].CurveToEdit->GetTimeRange(CurveMin, CurveMax);
    
    			MinTime = FMath::Min(CurveMin, MinTime);
    			MaxTime = FMath::Max(CurveMax, MaxTime);
    		}
    	}
    }

I believe that would not be without bends in GetCurves function because the values are being passed
Below is Part of my function that moves between an event and another

void AVJTimeline::BeginPlay()
{
	Super::BeginPlay();

	bool StartConfig = false;
	bool xTimeLineUpdate = true;
	bool xTimeLineChange = false;

	TimeLine = *new FTimeline;
	TimerHandle = *new FTimerHandle;
	xEditCurve = *new FRichCurve;
	xCurveFloat = ConstructObject<UCurveFloat>(UCurveFloat::StaticClass());

	TimeLine.PlayFromStart();

	GetWorldTimerManager().SetTimer(TimerHandle, this, &AVJTimeline::TickTimeline, DeltaTime, true, 0.0f);
}

// Execute TimeLine Function BluePrint
void AVJTimeline::VJTimeLine_Execute(){
	
	FOnTimelineFloat ProgressEvent{};
	
	float xTimeLength = CalculateBPMSecondsToBeats(BPM, Beats);

	if (StartConfig == false){ AVJTimeline::Timeline_Execute_Change(); StartConfig = true; }

	if (xTimeLineUpdate == true && xTimeLineChange == true){
		
		xTimeLineUpdate = true;
		TimeLine.SetLooping(false);
		
		FScriptDelegate FinishedEvent;
		FinishedEvent.BindUFunction(this, TEXT("Timeline_Execute_Change"));
		TimeLine.SetTimelineFinishedFunc(FOnTimelineEvent(FinishedEvent));
	}
}

// Change Parameter Of Timeline When Press Button in  Keyboard Before Timeline Actual Exit...
void AVJTimeline::Timeline_Execute_Change(){
	
	FOnTimelineFloat ProgressEvent{};

	float xTimeLength = CalculateBPMSecondsToBeats(BPM, Beats);

	xEditCurve.Reset();

	TimeLine.SetTimelineLengthMode(ETimelineLengthMode::TL_LastKeyFrame);

	KeyHandle = xEditCurve.AddKey(0.0f, 0.0f);

	xEditCurve.AddKey((xTimeLength / 2), CalculateDegree(Degree), false, KeyHandle);
	xEditCurve.AddKey(xTimeLength, 0.0f, false, KeyHandle);
	xEditCurve.SetKeyInterpMode(KeyHandle, Curve);

	xCurveFloat->FloatCurve = xEditCurve;

	ProgressEvent.BindUFunction(this, "TimeLine_Update");

	TimeLine.AddInterpFloat(xCurveFloat, ProgressEvent, FName{ TEXT("TimelineProgress") });
	TimeLine.SetTimelineLengthMode(ETimelineLengthMode::TL_LastKeyFrame);
	TimeLine.SetTimelineLength(CalculateDegree(Degree));
	TimeLine.SetLooping(IsLoop);

	TimeLine.Play();
	xTimeLineUpdate = false;
	xTimeLineChange = false;
}

// Execute This Method When Press Buttom Via BluePrint.. Parameters Changed in BluePrint
void AVJTimeline::VJTimeLine_Update(float xValue){
	xTimeLineUpdate = true;
	if (xTimeLineChange == true){ xTimeLineChange = false; }
	else{ xTimeLineChange = true; }
}

// Return ActualFloat Value to Editor And Print Screen to Aval..
void AVJTimeline::TimeLine_Update(float xValue){ ReturnFloat = xValue; }

void AVJTimeline::TickTimeline(){
	if (TimeLine.IsPlaying()){

		if (xTimeLineUpdate == true){
			AVJTimeline::VJTimeLine_Execute();
			xTimeLineUpdate = false;
		}

		TimeLine.TickTimeline(DeltaTime);
	}
	else{
		GetWorldTimerManager().ClearTimer(this, &AVJTimeline::TickTimeline);
		SetLifeSpan(0);
	}
}