Desbordamiento de pila visual C ++, potencialmente tamaño de matriz?

Que yo sepa, esto no es causado por una recursión infinita.

El programa funcionó correctamente con matrices más pequeñas (es un editor de audio). Ahora he aumentado la funcionalidad para permitir arreglos más grandes (hasta 5 minutos de audio, 26460000 piezas de datos de 16 bits ~ 50 mb).

Desde que aumenté el tamaño de la matriz, recibo errores de desbordamiento de pila en una función en particular, donde debería revertir la reproducción de un archivo de entrada escribiendo la matriz en una nueva matriz al revés, y luego sobrescribiendo la matriz original. Supongo que, como cada matriz podría tener hasta 50 MB, este podría ser el problema:

<code>//initialise temporary new array to place samples in
short signed int reverse_data[max_number_samples];  

for (i=0; i<track_samples; i++)
{  //puts data from sound_data into reverse_data backwards.
  reverse_data[(max_number_samples-1)-i]=sound_data[i];    
}

for (i=0; i<track_samples; i++)    
{     //now overwrites sound_data with the data in reverse_data
  sound_data[i]=reverse_data[i];
}
</code>

Soy bastante nuevo en C ++ y en la programación en general, y no estoy seguro de cuáles son los errores que recibo durante la depuración realmente me están diciendo.

Cualquier ayuda sería apreciada, estoy seguro de que hay una solución bastante simple (he leído cosas que involucran 'montones' pero no estoy seguro de lo que realmente es 'un montón').

Respuestas a la pregunta(2)

Su respuesta a la pregunta