Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zwolnienie pamięci bitmapy dwuwymiarowej

Ostatnio zmodyfikowano 2011-01-04 16:55
Autor Wiadomość
Dragonit
Temat założony przez niniejszego użytkownika
Zwolnienie pamięci bitmapy dwuwymiarowej
» 2011-01-04 16:04:58
Tworze bitmape dwuwymiarową:

BITMAP * sciana[ 24 ][ 24 ];
   

Czy poprawne jest zwolnienie ją w ten sposób:

C/C++
for( int i = 0; i < 23; i++ )
{
    for( int j = 0; j < 23; j++ )
    {
        destroy_bitmap( sciana[ i ][ j ] );
    }
}
 
Chyba nie, bo wywala mi okno z błędem głoszącym:

Instrukcja spod "0x7c911eb" odwołuje się do pamięci pod adresem "0x013d664a". Pamięć nie może być "written". 
 
Brak błędów kompilacji.

Jak ją zwolnić ?


P-26210
malan
» 2011-01-04 16:28:06
W jaki sposób inicjujesz tą tabelę?
P-26212
Dragonit
Temat założony przez niniejszego użytkownika
» 2011-01-04 16:43:13
Tak inicjuje:
C/C++
for( int i = 0; i < 24; i++ )
{
    for( int j = 0; j < 24; j++ )
    {
        czySciana[ i ][ j ] =( rand() %( true + 1 - false ) ) + false;
       
        if( czySciana[ i ][ j ] == true ) sciana[ i ][ j ] = wall;
        else sciana[ i ][ j ] = noWall;
       
    }
}
 
A tak wyświetlam:
C/C++
for( int i = 0; i < 24; i++ )
{
    for( int j = 0; j < 24; j++ )
    {
        blit( sciana[ i ][ j ], bufor, 0, 0, sciana[ i ][ j ]->w * i, sciana[ i ][ j ]->h * j, sciana[ i ][ j ]->w, sciana[ i ][ j ]->h );
    }
}
    
P-26213
ison
» 2011-01-04 16:44:46
forami powinieneś lecieć 1 element dalej (<24)
(w 1 poście)
(zanim dodałeś kolejnego posta...)
P-26214
malan
» 2011-01-04 16:47:11
Aaa, poznaję ten kod ;).
Do tablicy przekazujesz tylko wskaźniki na bitmapy wall i noWall. Ładujesz je przecież tylko raz. Pamiętaj- funkcją destroy_bitmap zwalniasz te bitmapy, które załadowałeś za pomocą (np.) load_bmp. Czyli:
C/C++
destroy_bitmap( wall );
destroy_bitmap( noWall );
P-26215
Dragonit
Temat założony przez niniejszego użytkownika
» 2011-01-04 16:55:16
Hehe. No tak miałem ostatnio problem z generowaniem tablicy. Teraz wróciłem dokończyć projekt. Dzięki "malan" za rozwiązanie kolejnej sprawy. Jeszcze z pewnością nie raz wrócę z pytaniem heh. Aha i dzięki "ison" za wyłapanie błędu, małego ale szkodliwego jakbym użył tego kodu.
P-26216
« 1 »
  Strona 1 z 1