| [ garbages ] in KIDS 글 쓴 이(By): limelite (a drifter) 날 짜 (Date): 2011년 07월 18일 (월) 오전 01시 50분 01초 제 목(Title): Re: 어이 없는 malloc 쓰레드 -_-; >malloc 안 하고 free하는 경우 >100점 >malloc/free pair 안 맞추는 넘 >80점 >malloc하고 null 체크 안 하는 넘 >10점 > >정도의 위험도 순위가 생긴다고 봅니다. >위험하다는 데에는 동의하나, 그 위험도는 다르다는 거죠. 앞글에서 program domain에 따라 다르다고 얘기하시던데, 저런 점수가 program domain이 달라져도 저렇게 나올 거라고 생각합니까? 어떤 초보는 저거 다 10점 짜리라서 대충 신경써도 되는데 괜히 어느 하나만 강조해서 지키라고 강요하는 꼰대짓한다고 짜증부릴 수도 있다는 생각은 안 합니까? 물론, 저는 10점 짜리도 care를 해줘야 한다는 것에 가깝습니다만... 네, 따지고 보면 이게 당연히 지켜야 하는 것은 아닙니다. 이런 걸 당연한 듯 지키며 만드는 프로그램과 아닌 프로그램에 질적 차이를 만드는 문제죠. >1. free()는 NULL을 받을 수 있습니다. NULL이 오면 아무것도 하지 않습니다. 그건 다른 분야의 예를 든 겁니다. >2. 일반적인 linux환경(win은 모름)에서 malloc은 null check가 무의미해요. 진짜 이해가 안 가네요. malloc 했는데 null이 돌아와도 프로그램이 뭔가를 하다가 횡사해서 사용자 내지는 관리자를 황당하게 만들지 말고, "어떠어떠한 작업을 하다가 메모리를 할당받을 수 없었다" 이런 메시지를 띄우던지 log에 남기던지 하면서 정상적으로 프로그램을 종료(혹은 해당 작업 보류) 해서 사용자/관리자가 이상상황(!)의 원인을 좀 더 쉽게 찾고 적절히 조처할 수 있도록 해준다.... 이게 왜 무의미하죠? 메모리 할당 받을 수 없는 이상상황에서도 어떻게든 할당 받아서 동작 시켜라? 이런 류의 얘기가 아니잖아요. ............................................................................... a drifter off to see the world there's such a lot of world to see |