Naruszenie ochrony pamięci

0

Witam wszystkich.
Mam pewien mały problem, mianowicie rozwiązuje sobie tak dla sportu zadanka na stronie http://pl.spoj.com. Zabrałem się ostatnio za teoretycznie proste zadanie, które polega na tym aby uzupełnić tablicę danymi wprowadzanymi z klawiatury i wyświetlenie tych elementów w odwrotnej kolejności. Jednak po poddaniu kodu do sprawdzenia otrzymuję "błąd wykonania (SIGSEGV)" czyli naruszenie ochrony pamięci, starałem się to rozwiązać już na kilka sposobów ale bez rezultatów. Nie mam pojęcia co jest powodem tego błędu. Proszę o pomoc. Poniżej mój aktualny kod, który powoduje błąd:

 #include<iostream>

using namespace std;

int main()
{
	int t, n, tab[10][100], i, l;
	cout<<"Podaj liczbę testów: ";
	cin>>t;
	
	for(i=0; i<t; i++)
	{
		cout<<"\npodaj ilosc liczb ktore chcesz wprowadzic: ";
		cin>>tab[i][0];
		cout<<"\nwprowadz liczby: \n";	
		if(tab[i][0]<=99)
		
			for(l=tab[i][0]; l>0; l--)
				cin>>tab[i][l];
		else 
			break;
	}
	
	for(i=0; i<t; i++)
	{
		cout<<endl;

		if(tab[i][0]<=99)

		for(l = 1; l <= tab[i][0]; l++)
			cout<<tab[i][l]<<" ";

		else 
			break;
	}

	return 0;
}
0

Prawdopodobnie przekroczyłeś gdzieś zakres tablicy.

Jeżeli wysyłasz kod do sprawdzarki ze spoja to nie wypisuj niczego na ekran, co nie jest rozwiązaniem zadania. Tyczy się to również tekstów typu "Wprowadź liczby".

0

Zrobiłem to po to aby było wiadomo za co odpowiadają jakie liczby na spoj-u oczywiście tych linii kodu nie ma.

0

Podaj link do zadania.

0

Kurcze ale banalna sprawa. Okazało się że w deklaracji tablicy określiłem sobie pierwszy wymiar na 10 elementów ponieważ w treści zadania nie było ograniczeń dla tej wartości. Gdy zmieniłem rozmiar tablicy na tab[100][100] zadanie zostało zaakceptowane. Dziękuję za pomoc:) Pozdrawiam.

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