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”).