디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

C 메모리 관리는 익숙해지면 쉽습니다.

*루비*갤로그로 이동합니다. 2025.02.15 10:02:18
조회 67 추천 0 댓글 0





처음에나 어렵지

익숙해지면 식은 죽 먹기처럼 무척 쉬워요.

그러면 이렇게 반문을 하겠죠?

익숙해지면 쉽게 느껴지는 건 당연한거 아닙니까?

네, 맞습니다.

익숙해지기도 쉽습니다.


1. 첫번째 규칙


func_new ()

func_free ()


이 두가지를 쌍으로 사용하면 됩니다.


void do_something ()

{

  Obj* obj = obj_mew ();

....

....

   obj_free (obj);

}


이렇게 습관화하면 메모리릭 발생할 일이 없습니다.


2. 레퍼런스 카운팅


void diary_add_obj (Diary* diary, Obj* obj)

{

  obj_ref (obj); // ref_count++

  ....

}


void diary_del_obj (Diary* diary, Obj* obj)

{

  ...

  obj_unref (obj); // ref_count--

}


void diary_do_something (Diary* diary)

{

  Obj* obj = obj_new (); // ref_count++

  diary_add_obj (obj);

  ....

  obj_unref (obj); // ref_count--

}


저렇게 쌍으로 사용하면 릭 발생할 일도 없습니다.


_new // ref_count++

_free


_ref

_unref // ref_count--


GC 언어가 유행인데,

문제점이 있어요.

new 는 있는데 free가 없는거죠 ㅎㅎ

저는 저러한 설계를 잘못 설계했다고 보는 입장이거든요.

차라리 new, free 둘다 없이 설계하면 모를까.

ㅎㅎㅎ


--

PS. ref_count 변수에 atomic 속성을 주면, 멀티 스레드에서도 문제가 없습니다.
의외로 메모리 관리는 쉽습니다. 허무할 정도로요.
그런데 왜 못하냐? 그것은.. new는 있는데 free가 없는 언어를 사용하면서
잘못된 습관이 몸에 베어서 그런 겁니다.
그리고 GC를 신뢰하지 마십시오.
GC 자체에 버그가 있어요.

GC 언어 사용하면 메모리릭이 반드시 발생한다고 간주하시면 되고요.
그러한 메모리릭은 감지/추적/해결하기가 매우 어렵습니다.
그래서 GC 언어 사용하면서 메모리릭을 해결하지 못하여
메모리릭을 해결하고자 GC가 없는 언어로 다시 짜는 경우도 있어요.
ㅎㅎㅎ
저는 리눅스 프레임버퍼 콘솔 한글 입력기를 만들지 않겠습니다.
https://nimfsoft.art/blog/2025/02/12/i-wont-make-a-linux-framebuffer-console-hangul-input-tool/

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 본업은 완벽해 보이지만 일상은 허당일 것 같은 스타는? 운영자 25/02/17 - -
AD [베이비챗] 제약 없는 AI 채팅, 숨김없이 솔직하게 운영자 25/02/20 - -
2819512 요즘 좆같아서 개발공부 안하는중 [1] 호루스갤로그로 이동합니다. 02.18 91 0
2819511 멍유 글 보고 퍼뜩 생각난 아이디어 [2] ㅇㅇ(49.165) 02.18 54 0
2819510 시간지날수록 디지몬도 못보는날올듯 많이 봐둬라 뒷통수한방(1.213) 02.18 29 0
2819509 hrin 소환술 시전합니다 [4] cvs.갤로그로 이동합니다. 02.18 48 0
2819508 독해져야겠다 [1] ㅇㅇ(119.206) 02.17 39 0
2819506 세계기득권재벌들이 왜 재벌이겠냐 자격증많고능력좋으니 타이밍뒷통수.한방(1.213) 02.17 29 0
2819505 국비 동기들 뭐하고사나 궁금하다 [7] 호루스갤로그로 이동합니다. 02.17 154 0
2819503 아스카 일주일 동안 일이 없네요 [3] 아스카영원히사랑해갤로그로 이동합니다. 02.17 63 0
2819501 도파민을 내게 도움되게 쓰는 법에 관한 영상을 만들어 봤습니다 프갤러(106.241) 02.17 29 0
2819500 육체적으로 지쳐서 안되겄다 [1] ㅆㅇㅆ찡갤로그로 이동합니다. 02.17 59 0
2819499 화교분탕의 챙 라이브 악플도배 ㅇㅇ(39.7) 02.17 36 1
2819496 반디집 선 넘은 것 같아서 떠난다 [5] ㅇㅇ(59.9) 02.17 145 0
2819494 dd 꿈과별빛갤로그로 이동합니다. 02.17 35 0
2819491 선거 필승법 알려준다. [3] 멍청한유라ㅋ갤로그로 이동합니다. 02.17 57 1
2819490 넥도리아/발명도둑잡기/ㅆㅇㅆ 갤입니다 [9] 나트륨찡갤로그로 이동합니다. 02.17 86 1
2819489 왜 노가다 하고 온 날은 작업이 안될까 [2] ㅆㅇㅆ찡갤로그로 이동합니다. 02.17 58 0
2819487 휴대폰 백신추천좀 갤갤갤(106.101) 02.17 32 0
2819486 프갤 대권 변화도 초코냥이랑 냥덩이가 사라짐 [2] 나트륨찡갤로그로 이동합니다. 02.17 53 0
2819485 결론은 일론 머스크 고졸? 백갤러(221.165) 02.17 34 0
2819484 난 이제 지쳤어요 땡뻘 [8] 멍청한유라ㅋ갤로그로 이동합니다. 02.17 64 0
2819483 냥덩이가 안 보인다 슬슬 걱정된다 이럴 리가 없을 텐데,,,, [3] 나트륨찡갤로그로 이동합니다. 02.17 63 0
2819481 이거 알려준사람 하는일 다 잘되라ㅡ진짜 ㅇㅇㅇㅇ(175.208) 02.17 43 0
2819480 나님 세계최강 초천재찡 ㅋ [2] 나트륨찡갤로그로 이동합니다. 02.17 38 0
2819478 두산로보틱스 뭐 부트캠프 신청했는데 프갤러(112.155) 02.17 47 0
2819475 디시 국민의 힘갤러 악성댓글 캡처한거 다 지울까요? 넥도리아(112.170) 02.17 34 0
2819474 프갤 있어본 감상으론 영어 원문 서적읽는게 병신임 ㅇㅇ ㅆㅇㅆ(124.216) 02.17 103 2
2819473 취미로 유튜브 하면 여행 유튜버가 제일 좋지 않나요? qu(218.156) 02.17 23 0
2819471 정보보호학과 신입생 살려주실 분!! 프갤러(15.235) 02.17 41 1
2819470 정처기는 단 한번도 컴활 1급보다 어려운적이 없다 ㅇㄷ(61.76) 02.17 51 0
2819469 코딩을 계속 해도 되나? 백갤러(221.165) 02.17 57 0
2819468 지난주에 3rsys 에서 하드 쿨러 사왔는데 너무나도 좋습니다. 넥도리아(112.170) 02.17 27 0
2819467 나님 애먼 컴파일러 탓하다 몇 시간을 날리시다 딱님갤로그로 이동합니다. 02.17 32 0
2819465 기운 충전 완료, 비법 공유함. [5] jonny갤로그로 이동합니다. 02.17 85 1
2819464 와 근데 법인세 오지게 깍아줘서 [9] ㅆㅇㅆ(124.216) 02.17 105 0
2819462 소스 공개를 해달라고 해서, 근데 궁굼한게 나스로 아예 사이트 구축하려고 [1] 넥도리아(112.170) 02.17 60 0
2819461 대한민국은 중국과 싸우는 중이다 ㅇㅇ(114.30) 02.17 43 2
2819459 안녕하세요 당첨금이 높은 희귀한 로또번호를 추천해주는 앱을 만들었습니다 지나가는개발자(221.151) 02.17 27 0
2819458 기업 다니는 새끼가 탄핵 반대 안하면 그게 골때리는거지 [1] ㅆㅇㅆ(124.216) 02.17 74 0
2819457 개발은 근본적으로 혼자하는 것인가 [3] jonny갤로그로 이동합니다. 02.17 71 1
2819456 흐린이 헬스하러 왔다 [1] hrin(118.235) 02.17 45 1
2819455 [링크드인] 유명 개발자들 탄핵 지지하네 ㅇㅇ(92.38) 02.17 83 1
2819453 디지몬 프론티어 다음 세이버즈 시리즈부터 안봄 [1] 뒷통수한방(1.213) 02.17 57 0
2819452 오늘의 영어단어로 댄 문장 ost Don't be Discouraged 넥도리아(112.170) 02.17 23 0
2819447 이제 파이어폭스로 넷플영상 녹화 안 되네 [1] 프갤러(221.143) 02.17 36 0
2819446 게이들아 컴공으로 편입한 문돌이인데 살려주라 [13] 프갤러(110.11) 02.17 91 0
2819445 나는 나이 30대 40대 50대 60대 되도 디지몬 볼거같음 [1] 뒷통수한방(1.213) 02.17 39 0
2819442 소프트웨어 아키텍쳐 개념 정립된 책을 보면 [2] ㅆㅇㅆ(124.216) 02.17 74 0
2819439 근데 ㄹㅇ 초창기 소프트 웨어 공학 한새끼들 대단하네 ㅆㅇㅆ(124.216) 02.17 59 1
2819438 아키텍쳐 패턴 보면서 느끼는데 아키텍쳐는 허상이다 [1] ㅆㅇㅆ찡갤로그로 이동합니다. 02.17 46 0
2819437 저녁을 참느냐 먹느냐 [2] jonny갤로그로 이동합니다. 02.17 32 0
뉴스 엄정화, GD가 선물한 신발 자랑…정장에도 찰떡 디시트렌드 02.19
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2