본문

[잡담] C언어 코드블럭 잼민이 입니다. 입력하지 않은 값이 나옵니다. [22]




 
  • 스크랩
  • |
  • URL 복사
  • |
  • |
  • |
  • 네이버로공유
  • |
  • |

  • 댓글 | 22
    1
     댓글


    (IP보기클릭)220.76.***.***

    int a=0, b=0; 식으로 명시적인 초기화를 해주어야 합니다.
    21.12.09 00:16

    (IP보기클릭)59.16.***.***

    글루미2
    아, 원래 그렇다는 말씀이군요. IDE나 컴터 문제인줄 알고 긴장했는데...휴...감사합니다. | 21.12.09 00:18 | |

    (IP보기클릭)58.225.***.***

    다른걸로 비유하면, a는 어떤 방에 들어가라고 하고, b는 어떤 방에 들어가라고 했는데 방청소를 안하고 들어가면 안에 이상한게 있을수 있다~고 생각해주시면 돼요. 방에 들어가기 전에는 방청소를 해야죠
    21.12.09 00:25

    (IP보기클릭)59.16.***.***

    루리웹-7189813554
    내 방도 못 치우는데..ㅎㅎ 답변 감사드립니다. | 21.12.09 00:53 | |

    (IP보기클릭)58.29.***.***

    쓰레기값이라고 합니다. 변수에 메모리를 할당하는데 이전 프로그램이 쓰던 값이라고 보시면되구요. 언어에 따라 쓰레기값을 지우고 디폴트값을 자동 할당하는 경우도 있지만 이경우는 해당이 없기 때문에 저렇습니다.
    21.12.09 00:28

    (IP보기클릭)59.16.***.***

    SAY L
    그렇군요. VB 6.0을 배운적이 있는데, 그건 모양만드는 재미가 있었는데..커맨드라인에 글자만 나오니 솔직히 좀 무섭...네요.. | 21.12.09 00:53 | |

    (IP보기클릭)211.106.***.***

    코드블럭이 문제가 아니라 엉터리로 독학하고 계시는게 가장 큰 문제예요
    21.12.09 00:42

    (IP보기클릭)59.16.***.***

    와일드다운
    역시, 학원에 다녀야 할까요. 교제에 나온 순서대로 하고있기는 한데..고민해봐야 겠네요. | 21.12.09 00:51 | |

    (IP보기클릭)112.187.***.***

    C언어 기본책이라도 보시기 바랍니다. 책 앞장에 나오는 아주 기본적인 내용이예요.
    21.12.09 00:52

    (IP보기클릭)59.16.***.***

    DUH!
    어......기본책인지는 모르지만 한빛미디어 에서 나오는 'C언어 기초' 우제남 저 보고 공부하고 있습니다. 그냥 책을 다 완독하고 질문을 하는 편이 좋겠군요...삼가하겠습니다. | 21.12.09 00:55 | |

    (IP보기클릭)61.255.***.***

    언어에 따라 변수를 만들면 값이 자동 초기화 되기도 하는데 C언어는 그렇지는 않아서 사용할 변수는 값을 지정하거나 초기화 해서 쓰는게 좋아요
    21.12.09 01:14

    (IP보기클릭)59.16.***.***

    이피님
    몰랐네요T..T 감사드립니다. | 21.12.09 01:15 | |

    (IP보기클릭)39.7.***.***

    c, c++에서 초기화는 항상 하셔야해요. 운이 좋아서 0이 보일 수 있지만 메모리는 한정적이라 다른 변수가 쓰던 것이 해제되고 그 영역을 사용하게 되면 쓰레기 값이 남죠. 저는 학부시절에 열혈강의 시리즈 봤었는데... 그것만 해도 기초는 다 배우실 거라 봐요.
    21.12.09 09:00

    (IP보기클릭)39.7.***.***

    루리웹-1959315931
    그리고 저런 내용 책에 있다곤 하지만 유념해서 보기 때문에 질문하시는게 나쁜거라고 보이진 않아요. 물어보면서 성장하는거니깐요. 8년차인 지금도 물어보는데요 모! ㅎㅎ | 21.12.09 09:01 | |

    (IP보기클릭)39.7.***.***

    루리웹-1959315931
    비슷한 문제로 malloc이나 new로 동적할당 하고서 안의 내용을 memset 안해주면 대참사가 일어나는 경우도 있죠. | 21.12.09 09:03 | |

    (IP보기클릭)1.255.***.***

    C언어들도 최근 몇몇 IDE나 컴파일러들은 자동으로 0으로 초기화 해주기도 하나... 일단 초기화 작업 진행하는걸 습관들이셔서 항상 초기화 해주시기를 추천합니다. 일단 이유는 int a; 라고 변수를 선언하게 되면 메모리의 한 공간에 a라는 이름으로 공간을 할당 받게 됩니다. 근데 그 메모리라는 놈이 나만 쓰는게 아니자나요?? 일종의 공용 오피스인놈인지라.. 누군가(다른 프로그램)이 사용을 했던 장소일 수가 있습니다. 근데 그 누군가가 방을 빼기전에 청소를 하고 나갔다면 참 좋겠지만.. 아시자나요.. 개판으로 해놓고 나가는놈들 많은거... 그런 이유로 이전에 사용했던 흔적들(쓰레기 값 or 가비지 값)들이 남아있게 되서 해당 공간을 할당 받았을때 그 값들이 나오게 되는 그런 현상입니다. 즉, 새 집에 들어갈 때는(변수를 선언 할 때)는 집청소(초기화)를 하는것을 습관 들이셔야 합니다. C언어가 아닌 다른 언어를 공부하실때에도 자동으로 0으로 초기화를 해주는 언어라고 해도, 초기화를 해주는 작업은 코드를 육안으로 확인한다거나, 안전성 측면에서도 매우 좋은 습관 입니다.
    21.12.09 09:51

    (IP보기클릭)118.235.***.***

    다산=파산교주
    감사합니다. ;,하고 같이 버릇들여야 겠네요 | 21.12.09 17:32 | |

    (IP보기클릭)210.107.***.***

    "int a"라는 구문은 "메모리 상에서 int형 (32 bit)만큼 공간을 잡고 거기에 a라는 이름을 붙인다."라는 뜻입니다. 메모리에서 각 bit은 0 또는 1의 값을 가질 수밖에 없습니다. 컴퓨터 전원이 켜질 때 처음에는 0일 수도 있고 1이 될 수도 있습니다. 따라서 메모리 공간을 잡기만 한 순간에는 그 32bit가 0000 ... 0000이라는 보장이 없습니다. 그래서 "int a = 0"처럼 따로 초기화를 하지 않으면 매번 다른 값이 나옵니다.
    21.12.09 12:43

    (IP보기클릭)117.52.***.***

    오잇스
    컴퓨터 입장에서 코드를 바라보는 게 필요하군요..-..- 답변 감사드립니다. | 21.12.09 12:56 | |

    (IP보기클릭)210.107.***.***

    인민배우 심영
    코딩할 때 벌어지는 요상한 일들은 대부분 컴퓨터의 동작을 깊게 바라 보아야지 이해 가능한 것들이 많습니다. 프로그래밍 언어들이 컴퓨터 내부 시스템까지 이해하지 않고도 프로그램을 작성할 수 있게는 해 주지만 가끔 이런 요상한 일들이 일어나기는 하거든요. https://bbs.ruliweb.com/etcs/board/700079/read/490? 제가 심영님 공부에 도움이 될 만한 책을 하나 추천드립니다. 제가 심영님 나이가 몇 살인지 몰라 알맞은 수준의 책을 추천했는지는 모르겠으나 비전공자도 읽을 수 있을 정도로 쉽게 쓰여진 책이라 정말 초등학생이라 하실지라고 이해하시는 데에는 크게 무리가 없을 것으로 생각됩니다. 프로그래밍 공부와 병행하면서 틈틈히 이 책을 읽으면 프로그래밍이라는 것을 왜 하는지 이해하시는 데에 도움이 될 것이라 생각합니다. | 21.12.09 13:02 | |

    (IP보기클릭)211.106.***.***

    프로그래밍 왜 하시는지는 모르겠지만 일단은 독학부터 그만두시고 C 대신 스크래치나 파이썬 같은거 배워보시길 권합니다
    21.12.09 16:21

    (IP보기클릭)220.117.***.***

    책 읽으라고 하는 사람들 때문에 기죽어서 질문을 삼가하지는 마시길 바랍니다. 모르면 생각날 때 질문하세요. 물론 책 잘 읽어봐야하고, 유료 강의 들으면 돈 값 합니다. 하지만 취미로 시작하셨으니까, 자기 페이스로 하세요. '내가 너무 하찮은 질문을 했구나' 같은 생각하지 말고 즐기면서 하세요. 안 그러면 금방 흥미 잃습니다. 다만, 검색은 많이 하세요. 특히 영어로... 아무리 열심히 공부해도 그 다음엔 모르는 것이 있고, 나한테 알려줄 수 있는 사람도 없어집니다. 스스로 찾아낼 수 있어야 합니다. 쓰레기 값은 C에서는 상식적인 내용이고 모르면 큰일날 내용이지만, 왜 쓰레기 값이란게 있는가? 메모리는 어떻게 구성되어 있는가? 메모리 할당은 어떻게 되는가? 를 제대로 아는 것은, 코드 수준에서 잘 보이지 않는 문제를 해결하는데 큰 도움을 줍니다. 지금 신경쓰실 부분은 아니지만... 수동적으로 공부하지마시고, 능동적으로 공부하세요. 생각 많이 해보고, 검색 많이 해보고, 안되면 질문도 많이 하세요. 별거아닌 질문일 수도 있지만, 제대로 이해하면 정말 중요한 문제를 풀어낼 수 있습니다.
    21.12.09 19:41


    1
     댓글





    읽을거리
    [게임툰] 키메라와 떠나는 모험, 덱 빌딩 로그라이크 '다이스포크' (36)
    [게임툰] 번뜩이는 재치와 액션으로! 마리오 vs. 동키콩 (37)
    [MULTI] 유니콘 오버로드, 아무도 전설의 오우거 배틀 3를 만들어주지 않길래 (141)
    [게임툰] 슈퍼 민주주의를 위하여! 헬다이버즈 2 (76)
    [MULTI] 낭만과 두려움 가득한 야간주행, 퍼시픽 드라이브 (24)
    [게임툰] 섀도 타임이 뭔데, 페르소나 3 리로드 (96)
    [PS5] 파이널 판타지 7 리버스, 추억을 넘어 다시 태어난 최종환상 (75)
    [게임툰] 나 사실 격겜에 재능있는 거 아니야? 철권 8 (58)
    [MULTI] 이 한 몸 슈퍼 민주주의를 위해, 헬다이버즈 2 (85)
    [MULTI] 여전히 안개 속을 표류하는 해적선, 스컬 앤 본즈 (28)
    [MULTI] 비로소 하나가 된 두 개의 이야기, 어나더 코드 리컬렉션 (9)
    [MULTI] 더 친절해진 한국 인기 격투게임, 철권 8 (95)



    글쓰기
    공지
    스킨
    ID 구분 제목 글쓴이 추천 조회 날짜
    118 전체공지 업데이트 내역 / 버튜버 방송 일정 8[RULIWEB] 2023.08.08
    143 공지 게시판 이용자 프로그래밍 언어 설문 조사! (2차 설문 20/04/30~... (3) _ 식봉이는 식봉해 3 1477 2021.03.24
    3 공지 [공지]프로그래밍 & 코딩 게시판 입니다. _ 식봉이는 식봉해 4 1908 2021.03.10
    3165 잡담 루리웹-1970043849 174 2023.12.18
    710 질문 질풍비장의패 1 569 2022.11.30
    707 질문 루리웹-3648796984 734 2022.11.23
    691 잡담 루리웹-8641268934 2 673 2022.08.07
    685 잡담 루리웹-4247021526 2 735 2022.07.25
    647 잡담 루리웹-4746138650 655 2022.06.01
    637 질문 키라 요시카게 1 727 2022.05.24
    631 질문 우너무너 644 2022.05.14
    597 질문 키라 요시카게 630 2022.04.03
    527 질문 와이플 644 2022.01.14
    526 질문 와이플 665 2022.01.13
    525 질문 와이플 1 803 2022.01.13
    522 잡담 인민배우 심영 876 2022.01.09
    521 질문 인민배우 심영 720 2022.01.08
    518 질문 오잇스 639 2022.01.05
    514 질문 인민배우 심영 534 2022.01.02
    513 질문 인민배우 심영 659 2021.12.31
    512 질문 인민배우 심영 1025 2021.12.30
    511 잡담 인민배우 심영 1 639 2021.12.27
    509 잡담 salvare545 603 2021.12.27
    508 강좌 _ 식봉이는 식봉해 4 1123 2021.12.27
    507 질문 인민배우 심영 695 2021.12.25
    500 잡담 인민배우 심영 1 809 2021.12.24
    497 잡담 인민배우 심영 912 2021.12.16
    495 질문 V1046R-MAHORO 1 499 2021.12.14
    491 질문 인민배우 심영 697 2021.12.10
    490 전공지식 오잇스 4 904 2021.12.09
    489 잡담 인민배우 심영 1075 2021.12.09
    글쓰기 67개의 글이 있습니다.
    1 2 3
    게시판 매니저
    X