c언어에서 쓰레기값이 나오는 이유가 무엇인가요?

HYEONG HWAN, MUN/ 10월 18, 2014/ 미분류/ 1 comments

https://blog.lael.be/post/172

메모리가 있습니다.

누구는 무슨 숫자를 넣고~~~

막 이러겠죠?

메모리는 무한한 자원이 아니니까

메모리 해제를 하면

그 메모리는 그냥 “사용하지 않는” 메모리입니다…

근데… 그 메모리 해제를 할때… 과연 초기화까지 시켜서 해제를 할까요??

우리가 하드자료를 저장하고 쓰다가 그 파일을 지웁니다…

근데 그 파일을 지울때 그냥 확 지워지지 않습니까??

오래 걸릴것도 없이.. 이 역시 지우면서 초기화를 하지 않고…

단지 하드에… 여기는 “사용안함” 딱지를 붙이고…

다음에 사용할때 그 딱지를 떼면서 거기 수치를 바꾸죠…

 

간단한 원립니다.

쉽게 말해 그 알수 없는 수치는

전에 사용했던 수치라던가…

그런게 남은거죠…

쉽게 말해 딴녀석이 사용하던 공간이라는겁니다…

변수를 잡는순간 “사용하지 않던 공간” 이라는곳을 변수가 가르키는거고요…

변수가 가르키면서 초기화까지 시켜준다면…

어셈블러에 대입하는 과정까지 한줄의 코드가 들어가는건데…

굳이 불필요한 일을 하진 않아요.

고로, 그 메모리에 원래있던값.. 즉 쓰레기값이 들어가있는거에요

“일부러” 쓰레기값을 넣을정도로 컴퓨터는 쓸데없는짓을 안합니다…

서로 다르게 나오는것도.. 항상 사용하던게 모든 같은 숫자가 아니니까요.

“메모리 안씀”이라는 팻말을 붙이면서 쓸데없이 초기화나 특정숫자를 집어넣는 작업을 안하기 때문에, 쓰레기값이 나오는 것입니다.

1 Comment

하잇^^에 답글 남기기 응답 취소

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*