Looks like A QTableWidget automatically deteles any cell widgets you set.
That means that for each of the 3 cell widgets you set it will try to delete the widget individually. However you did not individually allocate those widgets, you allocated an array of widgets, that means that for 1 entry it will delete all three widgets where as for the other 2 it will try to delete a pointer that is not valid.
You need to allocate (call new) separately for each widget you wish to add to the table.