Stack overflow visual C ++, potencialmente tamanho do array?

Tanto quanto sei, isso não é causado por uma recursão infinita.

O programa funcionou corretamente com matrizes menores (é um editor de áudio). Agora eu tenho funcionalidade aumentada para permitir matrizes maiores (até 5 minutos de áudio, 26460000 pedaços de dados de 16 bits ~ 50MB).

Como estou aumentando o tamanho da matriz, estou recebendo erros de estouro de pilha em uma função específica, onde ela deve reverter a reprodução de um arquivo de entrada, gravando a matriz em uma nova matriz de trás para frente e, em seguida, substituindo a matriz original. Eu estou supondo que cada array pode ter até 50MB, pode ser onde está o 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>

Eu sou relativamente novo em C ++, e estou programando em geral, e não tenho certeza do que os erros que recebo durante a depuração estão realmente me dizendo.

Qualquer ajuda seria apreciada, tenho certeza que há uma solução bastante simples (eu li coisas envolvendo 'heaps', mas não tenho certeza do que realmente é 'a'heap').

questionAnswers(2)

yourAnswerToTheQuestion