I get a Debug Assertion Failed error when trying to free allocated memory.

I have a 2 dimensional dynamic array called floatData
PHP Code:
float ** floatData
stored in a class called FitsData. I dynamically allocate memory first by allocating the rows (axis2):
PHP Code:
fitsData->floatData = new float * [axis2Size]; 
In a loop of axis2 size, I allocate the columns in each row while reading in data:
PHP Code:
while (counterAxis2 axis2Size) {
    
floatArray = new float [axis1Size];
    
filePtr.read((char *)floatArray,sizeof(float)*valuesToRead);
    
fitsData->floatData[counterAxis2]=floatArray;
    
counterAxis2++;

The data is read in correctly and I do manipulations and so forth. The problem comes when deallocating in my destructor.
PHP Code:
FitsData::~FitsData () {
    
int positionAxis2;
    if (
floatData != NULL) {
        for (
positionAxis2=0;positionAxis2<axis2Size;positionAxis2++) 
            
delete [] floatData[positionAxis2];
        
delete  [] floatData;
    }

For these parameters, it invariably crashes at positionAxis2==984. Parameters include axis2Size==4105, axis1Size==2050 (both of which are available to the destructor as part of FitsData).

in _free_dbg, it breaks on
PHP Code:
        if (check_frequency 0)
            if (
check_counter == (check_frequency 1))
            {
                
_ASSERTE(_CrtCheckMemory()); 
This is called from the delete operator, which is called from my destructor on the line:
PHP Code:
            delete [] floatData[positionAxis2]; 
I would be extremely appreciative of any help on this, as I have been going over this for a couple of days now. Thanks in advance!