Fixed a memory leak in smooth().
This commit is contained in:
9
.gitignore
vendored
9
.gitignore
vendored
@@ -16,3 +16,12 @@
|
|||||||
*.exe
|
*.exe
|
||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
ds
|
||||||
|
|
||||||
|
# Emacs backups
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Output netpbm images
|
||||||
|
*.pbm
|
||||||
|
*.pgm
|
||||||
|
*.ppm
|
||||||
|
23
ds.c
23
ds.c
@@ -179,15 +179,19 @@ void smooth ( int *** map, unsigned int MAP_SIZE) {
|
|||||||
for ( j = 0; j < MAP_SIZE; ++j ) {
|
for ( j = 0; j < MAP_SIZE; ++j ) {
|
||||||
avg = 0;
|
avg = 0;
|
||||||
|
|
||||||
avg += ( * map )[ i ][ j ];
|
/* I C H
|
||||||
avg += ( * map )[ ( i + 1 ) % MAP_SIZE ][ j ];
|
* E A D
|
||||||
avg += ( * map )[ ( i - 1 ) < 0 ? MAP_SIZE - 1 : i - 1 ][ j ];
|
* G B F */
|
||||||
avg += ( * map )[ i ][ ( j + 1 ) % MAP_SIZE ];
|
|
||||||
avg += ( * map )[ i ][ ( j - 1 ) < 0 ? MAP_SIZE - 1 : j - 1 ];
|
/* I */ avg += ( * map )[ ( i - 1 ) < 0 ? MAP_SIZE - 1 : i - 1 ][ ( j - 1 ) < 0 ? MAP_SIZE - 1 : j - 1 ];
|
||||||
avg += ( * map )[ ( i + 1 ) % MAP_SIZE ][ ( j + 1 ) % MAP_SIZE ];
|
/* C */ avg += ( * map )[ ( i - 1 ) < 0 ? MAP_SIZE - 1 : i - 1 ][ j ];
|
||||||
avg += ( * map )[ ( i + 1 ) % MAP_SIZE ][ ( j - 1 ) < 0 ? MAP_SIZE - 1 : j - 1 ];
|
/* H */ avg += ( * map )[ ( i - 1 ) < 0 ? MAP_SIZE - 1 : i - 1 ][ ( j + 1 ) % MAP_SIZE ];
|
||||||
avg += ( * map )[ ( i - 1 ) < 0 ? MAP_SIZE - 1 : i - 1 ][ ( j + 1 ) % MAP_SIZE ];
|
/* E */ avg += ( * map )[ i ][ ( j - 1 ) < 0 ? MAP_SIZE - 1 : j - 1 ];
|
||||||
avg += ( * map )[ ( i - 1 ) < 0 ? MAP_SIZE - 1 : i - 1 ][ ( j - 1 ) < 0 ? MAP_SIZE - 1 : j - 1 ];
|
/* A */ avg += ( * map )[ i ][ j ];
|
||||||
|
/* D */ avg += ( * map )[ i ][ ( j + 1 ) % MAP_SIZE ];
|
||||||
|
/* G */ avg += ( * map )[ ( i + 1 ) % MAP_SIZE ][ ( j - 1 ) < 0 ? MAP_SIZE - 1 : j - 1 ];
|
||||||
|
/* B */ avg += ( * map )[ ( i + 1 ) % MAP_SIZE ][ j ];
|
||||||
|
/* F */ avg += ( * map )[ ( i + 1 ) % MAP_SIZE ][ ( j + 1 ) % MAP_SIZE ];
|
||||||
|
|
||||||
avg /= 9;
|
avg /= 9;
|
||||||
|
|
||||||
@@ -197,6 +201,7 @@ void smooth ( int *** map, unsigned int MAP_SIZE) {
|
|||||||
|
|
||||||
for ( i = 0; i < MAP_SIZE; ++i ){
|
for ( i = 0; i < MAP_SIZE; ++i ){
|
||||||
memcpy ( ( * map )[ i ], temp[ i ], MAP_SIZE * sizeof ( int ) );
|
memcpy ( ( * map )[ i ], temp[ i ], MAP_SIZE * sizeof ( int ) );
|
||||||
|
free ( temp[ i ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
free ( temp );
|
free ( temp );
|
||||||
|
Reference in New Issue
Block a user