PICNIC 문제 풀때 memset 썼는데 에러가...

  • Ricky
    Ricky

    초기화 시킬 때 memset 사용 할 수 없나요 ?(c++/g++)
    에러때문에 굳이 for문으로 하나하나 초기화 해주긴했는데...
    다음 문제도 이렇게 해야하는건지...


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

    무슨 오류가 났는지 알려주시지 않으면 어떻게 고쳐야 할지 알려드릴 수가 없는데요. :(


    10년 전 link
  • Corea
    Corea

    memset 함수는 string.h에 포함되어 있습니다. 해당 헤더 파일을 포함해보세요 :)


    10년 전 link
  • JongMan
    JongMan

    1 알려드릴 수 있었군요 :)


    10년 전 link
  • Ricky
    Ricky

    오류내용은 아래와 같습니다.
    submission.cpp: In function ‘int main()’:
    submission.cpp:26:45: error: ‘memset’ was not declared in this scope
    memset(areFriends,false,sizeof(areFriends));

    선언은 아래와 같았습니다.
    bool areFriends[10][10];

    #include 했었구요.
    제 local VS2008 에서는 정상 동작했던부분인데. 컴파일 에러가 나서...


    10년 전 link
  • JongMan
    JongMan

    memset()은 C의 문자열 라이브러리, 즉 <cstring> 혹은 <string.h> 헤더에 포함되어 있으며, C++ 문자열 객체 구현인 <string>에는 포함되어 있지 않습니다. 컴파일러에 따라 표준 라이브러리가 다르므로, VS에서는 <string>만 include해도 cstring이나 string.h가 포함될 수 있지만 그것이 보장되어 있는 것은 아닙니다.


    10년 전 link
  • Ricky
    Ricky

    아하. 답변 감사합니다. ^^


    10년 전 link
  • Being
    Being

    memory.h 아닌가요?


    10년 전 link
  • Being
    Being

    표준에 따르면 string.h가 맞는 모양이네요. ㅠ


    10년 전 link
  • limited107
    limited107

    놀랍네요.


    10년 전 link
  • Taeyoon_Lee
    Taeyoon_Lee

    VS는 대표적으로 표준을 따르지 않기 때문에, 늘 주의가 필요합니다. 말하자면 약간 방언 섞인 표준어 같은 것이죠.


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