System.StackOverflowException przy dużej tablicy

0

Mam problem z zaalokowaniem dużej tablicy, program działa świetnie gdy rozmiar tablicy jest poniżej 350, ale gdy to przekroczę dostaje następuący błąd //An unhandled exception of type 'System.StackOverflowException' occurred in harmonogram.exe

  • i to zaraz po kliknięciu debuguj. Tutaj screen z błędem i miejscem w którym się zatrzymał http:*imageshack.us/photo/my-images/259/beztytuupkp.jpg/.
    Docelowo z pliku mam wczytywać dane 10000x10000.

A tutaj kod nie podaje funkcji bo on nawet do niech nie dochodzi


#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <fstream>
using namespace std;


int otworz_plik(fstream &plik);
void wczytaj_dane(fstream &plik, int &liczba_el, int tab_nas[][400], int tab_war[]);
void utworz_tab_pop(int &liczba_el, int tab_nas[][400], int tab_pop[][400], int tab_lp[]);
void utworz_harmonogram(int &liczba_el, int &czas_max,int tab_pop[][400], int tab_lp[],int tab_war[], int cs[], int cc[]);

int main(array<System::String ^> ^args)
{
	int i,liczba_el;
	fstream plik;
	
	int tab_nas[400][400]={0};
	int tab_pop[400][400]={0};
	int tab_war[400]={0};
	int tab_lp[400]={0};
	
	int cs[400]={0};
	int cc[400]={0};

	
	
	memset(tab_nas, 0,sizeof(tab_nas));
	int czas_max=0;

	otworz_plik(plik);
	wczytaj_dane(plik,liczba_el,tab_nas,tab_war);
	utworz_tab_pop(liczba_el,tab_nas,tab_pop,tab_lp);
	utworz_harmonogram(liczba_el,czas_max,tab_pop,tab_lp,tab_war,cs,cc);
	
	cout <<czas_max<<"\n";
	for(i=1;i<=liczba_el;i++)
	{
		cout <<cs[i]<<" "<<cc[i]<<"\n";
	}

	cin.get();
	return 0;
} 
0

Zdarzyło się dokładnie to, co zostało napisane w komunikacie o błędzie, czyli przepełniłeś stos. Na stosie masz ograniczoną pamięć, większe obiekty, szczególnie duże tablice, należy alokować na stercie. Zapoznaj się ze std::vector.

0

Wielkie dzięki, nie wiedziałem że stos jest ograniczony w visual c++ do 1mb, wstępnie zwiększyłem sobie jego rozmiar ale muszę go przepisać przy użyciu wektorów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1