밑에 질문을 보고 갑자기 memset과 fill의 차이가 궁금해져서(사실은 fill 이란게 있는줄 몰랐습니다 하하.. 그냥 루프문 만들어서 초기화를 했었는데 요즘 memset을 종종 사용하곤 합니다) 알아봤는데
memset(배열이름, 초기화할 값, 배열크기);
배열 크기는 주로 sizeof()를 사용하여 구한다.
memset은 1바이트를 단위로 초기화가 되기 때문에 1바이트를 넘는 데이터형들은 0이외의 값으로 초기화 할 수 없다. 예를 들어 4바이트인 int를 1로 초기화를 하려고 하면 1바이트마다 1로 초기화가 되기 때문에 실제로 int에 들어가게 되는 값은 1000000010000000100000001가 되며 10진수로 표현하면 2^24+2^16+2^8+1 = 16843009가 나오게 된다.
요런 내용이 있더라고요.
제가 종종 루프문 만들기 귀찮아서 int형 배열들(1,2차원)들을 memset을 이용해서 초기화해서 풀었는데 딱히 이거때매 틀린 문제는 없었는데 그냥 운이 좋았던 건가요 아니면 memset을 bool 이나 char 배열 초기화 할때 말고도 사용해도 되나요
kimsy96 6년 전
밑에 질문을 보고 갑자기 memset과 fill의 차이가 궁금해져서(사실은 fill 이란게 있는줄 몰랐습니다 하하.. 그냥 루프문 만들어서 초기화를 했었는데 요즘 memset을 종종 사용하곤 합니다) 알아봤는데
memset(배열이름, 초기화할 값, 배열크기);
배열 크기는 주로 sizeof()를 사용하여 구한다.
memset은 1바이트를 단위로 초기화가 되기 때문에 1바이트를 넘는 데이터형들은 0이외의 값으로 초기화 할 수 없다. 예를 들어 4바이트인 int를 1로 초기화를 하려고 하면 1바이트마다 1로 초기화가 되기 때문에 실제로 int에 들어가게 되는 값은 1000000010000000100000001가 되며 10진수로 표현하면 2^24+2^16+2^8+1 = 16843009가 나오게 된다.
요런 내용이 있더라고요.
제가 종종 루프문 만들기 귀찮아서 int형 배열들(1,2차원)들을 memset을 이용해서 초기화해서 풀었는데 딱히 이거때매 틀린 문제는 없었는데 그냥 운이 좋았던 건가요 아니면 memset을 bool 이나 char 배열 초기화 할때 말고도 사용해도 되나요