tablica wskaźników

0

...

1

Błąd przy zerowaniu tablicy tab - taka uwaga iżywaj tab[i][j] - kompilator i tak zoptymalizuje do tegosamego, a będzie czytelniejsze - szybciej zobaczysz, że zerujesz tylko elementy brzegowe.

0
 	for(i=0;i<uA+1;i++)
		{
			*(*(tab+i)+0) = 0 ; 
		
			
		}
	for(i=0;i<n+1;i++){
			*(*tab+i) = 0 ;
	
	}

te petle powinny mi dac taki efekt (ZAŁĄCZNIK)

W nich mam jakiś błąd ? przepraszam jeśli są to trywialne pytania ale z wskaźnikami bardzo rzadko mam do czynienia.

1

Tak, błędem jest nie stosowanie [] co powoduje zaciemnienie kodu.

0

kod

	for(i=0;i<uA+1;i++)
		{
		//	*(*(tab+i)+0) = 0 ; 
		tab[i,0] = 0; 
			
		}
	for(i=0;i<n+1;i++){
		//	*(*tab+i) = 0 ;
			tab[0,i] = 0;
	} 

przechodzi kompilacje ale wywala błąd podczas uruchomienia

0
tab[0][i]
0

Dodatkowo - zerujesz dalej tylko elementy brzegowe tablic.

0

Według algorytmu powinno ot być tak (Załącznik)

Więc wyzerowałem tylko pierwsza kolumnę i wiersz tak jak napisaliście :

 for(i=0;i<uA+1;i++)
		{
		//	*(*(tab+i)+0) = 0 ; 
		tab[i][0] = 0; 
			
		}
	for(i=0;i<n+1;i++){
		//	*(*tab+i) = 0 ;
			tab[0][i] = 0;
	}

niestety nie pomogło.

Spróbowałem również przed zapisem do tablicy wyzerować ją ale również nie przyniosło to żadnego skutku. Czy ma ktoś pomysł co tu jest nie tak ? bo nadal wyskakuja mi te wartości.

 	for(i=0;i<uA+1;i++)
			for(int j=0;j<n+1;j++)
				tab[i][j] = 0 ; 
0

nie jestem pewien, ale patrząc na to co deklarowałeś na początku, to zamiast:

 
for(i=1; i<4;i++){
        cout<<endl;
        for(int j =1;j<uA;j++){

wstawić

for(int j=1; j<4;j++){
        cout<<endl;
        for(i =1;i<uA;i++){
 

Głowy nie dam, ale tak mi się wydaje po tym jak tablicę deklarowałeś, chyba, że deklaracje powinny być inne.

0

Proprawiłem zapis wskaznikó na bardziej czytelny.
Juz nie mam pojęcia czemu tu jest cos źle.

Czy to możliwe że podczas gdy odpalam program rezultaty są nieprawidłowe a gdy go zdebuguje liczy juz poprawnie ?
w zalaczniku 1 jest screen po odpaleniu Execute>>Run
w zalaczniku 2 jest po debugowaniu....
na ideonie natomiast jeszcze inna wersja się ukazuje...

Czy może mi ktoś wyjaśnić skąd się biorą te różnice ?

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