Niezrozumiały błąd przy zwalnianiu pamięci na macierz w języku C

0

Hej!

Mam problem ze zwolnieniem pamięci na macierz, sam nie rozumiem tego problemu, ponieważ w programie tworze dwie identyczne macierze i dla jednej zwolnienie pamięci działa, a dla drugiej wyskakuje mi bląd: Unhandled exception at 0x5c09700c (msvcr100d.dll) in xxx.exe: 0xC0000005: Access violation reading location 0xcdcdcdc8.

Analizuje w ten fragment kodu już dłuższy czas i nie widzę błędu.
Za wszelką pomoc bardzo dziękuję, mam nadzieję, że znajdzie się ktoś bardziej spostrzegawczy ode mnie :D

int line2, column2, **board2;
board2 = (int**) malloc( line2 * sizeof(int*) );
			for( i = 0; i < line2; ++i);
			{
				board2[i] = (int*) malloc( column2 * sizeof(int));
			} 
 for( i = 0; i < line2; ++i)
			{
				free( board2[i] );
			}
			free( board2 );
		} 
1

obawiam się, że gdzieś gubiony jest adres właściwy wskaźnika.

0

Dziękuję za odpowiedź :)
Ale co w takim przypadku mogę zrobić? :D
Dlaczego tak się dzieje?

0

w tym kodzie line2 jest niezainicjowana, czyli pełna losowa kicha.

0

Liczbę kolumn i wierszy wprowadzam z konsoli, więc to nie ma znaczenia ;)

2
for( i = 0; i < line2; ++i); <-----
{
	board2[i] = (int*)malloc(column2 * sizeof(int));
}
0

Problem rozwiązany dziękuję EvilOne :D
Nie wiem dlaczego dałem w tym miejscu średnik :(

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