Przepełnienie stosu wizualne C ++, potencjalnie rozmiar tablicy?

O ile wiem, nie jest to spowodowane nieskończoną rekurencją.

Program działał poprawnie z mniejszymi tablicami (jest to edytor audio). Teraz mam zwiększoną funkcjonalność pozwalającą na większe macierze (do 5 minut dźwięku, 26460000 sztuk 16-bitowych danych ~ 50mb).

Od zwiększenia rozmiaru tablicy otrzymuję błędy przepełnienia stosu na jednej konkretnej funkcji, gdzie powinna ona odwrócić odtwarzanie pliku wejściowego, zapisując tablicę do nowej tablicy wstecz, a następnie nadpisując oryginalną tablicę. Zgaduję, że każda tablica może mieć do 50 MB, może to być problem, na którym polega problem:

<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>

Jestem dość nowy w C ++ i ogólnie programowaniu, i nie jestem pewien, co naprawdę mówią mi błędy, które otrzymuję podczas debugowania.

Każda pomoc byłaby doceniana, jestem pewien, że istnieje dość proste rozwiązanie (przeczytałem rzeczy z „stosami”, ale nie jestem pewien, czym naprawdę jest „gra”).

questionAnswers(2)

yourAnswerToTheQuestion