Crash with unknown reason

This is the location crash ocurrs:

and this is the callstack:

I guess the code below may cause it, which intended to create buttons dynamically:

H File

class SURVIVEPLEASE_API UMultislotInventoryUserWidget : public UUserWidget

	bool SetInventoryActor(AActor* inventoryActor);

	void Clear();
	class UContainerComponent* CorrespondingContainerComponent;
	TArray<class UButton*> Buttons;

	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Button")
		TSubclassOf<UButton>	ButtonStyleClass;

CPP File

bool UMultislotInventoryUserWidget::SetInventoryActor(AActor* inventoryActor)
	if (!inventoryActor) {
		return false;
	CorrespondingContainerComponent = Cast<UContainerComponent>(inventoryActor->GetComponentByClass(UContainerComponent::StaticClass()));
	if (!CorrespondingContainerComponent) {
		return false;
	if (!WidgetTree) {
		return false;
	auto RootCanvas = WidgetTree->ConstructWidget<UCanvasPanel>();
	auto ScrollBox = WidgetTree->ConstructWidget<UScrollBox>();

	UCanvasPanelSlot* ScrollBoxContainerSlot = Cast<UCanvasPanelSlot>(ScrollBox->Slot);
	if (ScrollBoxContainerSlot) {
		ScrollBoxContainerSlot->SetSize(FVector2D(768, 540));
		ScrollBoxContainerSlot->SetPosition(FVector2D(1152, 0));
		//ScrollBoxContainerSlot->SetAnchors(FAnchors(0, 0, 1, 1));
	Buttons.SetNum(CorrespondingContainerComponent->Height * CorrespondingContainerComponent->Width);

	for (UButton* button : Buttons) {
		button = WidgetTree->ConstructWidget<UButton>(ButtonStyleClass);
	WidgetTree->RootWidget = RootCanvas;
	return true;

Is this a bug or my mistake?
Thanks a lot!

Not solved yet. Anyone got a theory?

Update: I add UPROPERTY for these two member variable:

  class UContainerComponent* CorrespondingContainerComponent;
         TArray<class UButton*> Buttons;

still not work.

I give every button a unique name and the problem get solved. It seems that GC have dependency with object name.