๐ง ๋ฉ๋ชจ๋ฆฌ ๋์ (Memory Leak) โ
๋น์ : ์์กฐ์ ๋ฌผ์ ๋ฐ๋๋ฐ ๋ง๊ฐ๋ฅผ ์ ๋ฝ๋ ๊ฒ โ
์ ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ: ๋ฉ๋ชจ๋ฆฌ ๋์:
malloc() โ ํ ๋น ๐ชฃ malloc() โ ํ ๋น ๐ชฃ
์ฌ์ฉ... ์ฌ์ฉ...
free() โ ํด์ ๐ฟ free() ์์! โ
[๋ฌผ ๋ฐ๊ณ โ ๋นผ๊ณ โ ๋ฐ๋ณต] [๋ฌผ ๋ฐ๊ณ โ ๋ฐ๊ณ โ ๋ฐ๊ณ โ ๋์นจ!]์ฝ๋๋ก ๋ณด๋ ์ฐจ์ด โ
c
// ์ ์: ํ ๋น ํ ํด์
void ์ ์ํจ์() {
char* data = malloc(25MB); // ํ ๋น
// ... ์ฌ์ฉ ...
free(data); // โ ๋ฐ๋์ ํด์ !
}
// โ ๋์: ํด์ ์์
void ๋์ํจ์() {
char* data = malloc(25MB); // ํ ๋น
// ... ์ฌ์ฉ ...
// free(data); โ ์ด๊ฒ ์์!
} // ํจ์ ๋๋๋ ๋ฉ๋ชจ๋ฆฌ๋ ๊ทธ๋๋ก ์ ์ ์ค์ด ๋ฌธ์์์์ ํจํด โ
T+2์ด: malloc(25MB) free ์์ โ 25MB ์ ์
T+5์ด: malloc(25MB) free ์์ โ 50MB ์ ์
T+8์ด: malloc(25MB) free ์์ โ 75MB ์ ์
T+11์ด: malloc(25MB) free ์์ โ 100MB ์ ์ โ ์ข
๋ฃ์ถ์ฒ: Codyssey-B1/B4-2