malloc 메모리 해제..
글쓴이: bosub / 작성시간: 토, 2005/08/13 - 12:04오후
main()
{
...
char * str = a();
printf("%s\n",str);
...
}
char * a(void)
{
...
char *str = (char *)malloc(sizeof(char)*100);
return str;
}
이런식으로 프로그램을 짜면..
fuction a 안에 있는 str(malloc) 변수는 언제 해제 되는건가여?
만약에 메인에서 a()를 여러번 호출하면
전에 할당된 메모리 할당이 지워지지 않고 계속 할당 되는건가여?
Forums:
malloc() 으로 할당받은 메모리는 free() 해줄 때까지 해제가
malloc() 으로 할당받은 메모리는 free() 해줄 때까지 해제가 되지 않습니다. free() 해주지 않은 채 재할당을 하면 메모리누수가 발생합니다.
이런 코드라면 시스템의 메모리를 몽땅 잡아 먹는거죠.
이런 사용이 정상적인 사용입니다.
[quote="Anonymous"][code:1]char * a
free 를 해준 담에 x=NULL; 정도의 코드를 넣어주는 습관을 가지세요 =3=33
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
흑 얄미운 태영미소년나으리 -_-
흑 얄미운 태영미소년나으리 -_-
[quote="Anonymous"]흑 얄미운 태영미소년나으리 -_-[/q
앗 미소년이라뇨 ㅠ_ㅠ (누구실까;; )
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[quote="정태영"][quote="Anonymous"][code:1]
그것보다는,
이렇게 하는 것도... ^^;
댓글 달기