이 많은 메모리는 누가 다 먹는걸까요?

  • 투명드래곤
    투명드래곤

    처음으로 도전한 AOJ 문제에서.. 남들은 다 64K로 해결하는데 저 혼자 224K를 쓰는걸 보고 좌절했습니다 ㅠㅠ
    근데 소스를 보면 전역으로 int[2001] 잡은거랑 main 안에서 int 6개, int pointer 1개 선언한거밖에 없거든요
    귀찮아서 scanf를 좀 남발하긴 했는데.. 제 짧은 지식으로는 main에서 같은 함수를 여러번 부른다고 메모리 사용량이 늘어날 것 같지는 않구요
    (혹시 scanf 안에서 malloc 같은거 하면 free를 하더라도 malloc할 때 마다 메모리 사용량으로 카운트되거나... 뭐 그런건가요?)
    음.. 쓰다 보니 그게 맞는거 같기도 하네요.. ^^;; (scanf에서 메모리 선언을 하는지 어쩐지는 모르겠지만)
    그나저나 "프로그램은 표준 입출력만을 이용해야 하며, 다른 파일을 열거나 기타 금지된 시스템 콜을 이용할 수 없습니다." 라는건 무슨 의미인가요?
    처음에는 stdio.h이랑 iostream만 쓸 수 있다는걸로 생각했는데, 게시판 글들을 좀 읽다보니 말 그대로 파일입출력 같은건 안되고 stdin이랑 stdout만 쓸 수 있다는 거 같기도 하더라구요.. 다른 라이브러리는 다 쓸 수 있구요 (그래봤자 C++ 라이브러리는 아는게 없지만서도.. ^^;)
    제가 이해한 게 맞는건가요? 그럼 "금지된 시스템콜" 이라는건 어떤 것들인지도 좀 알려주시면 감사하겠습니다 ㅎㅎ

    [이 글은 과거 홈페이지에서 이전된 글입니다. 원문보기]

    14년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    아.... 이런 오해가.. ^^;; 지금 새 저지와 옛날 저지가 번갈아 돌아가고 있는데요, 옛날 저지는 메모리 사용량을 제대로 검사 못하고 항상 64kb 로 쓰게 됩니다. :-) 지금 옛날 버전이 올라가 있으니 다시한번 보내보시면 64kb 찍힐듯. ㅠㅠ
    그리고 금지된 시스템 콜은 많지요! fork() 등으로 프로세스를 더 띄우려 한다거나, 인터넷 소켓에 접속하려 한다거나, 다른 프로그램을 실행하려 한다거나 등등이 예입니다.


    14년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.