79brue   7년 전

아무리 돌려봐도 다 맞는데... 뭐가 문제인가요?

혹시 memset에 문제가 있나요?

-돌려본 케이스-

예제 3개

4 1

1 2 4 8

16


2 2

-1 0

0 1


5 7

1 2 4 6 9

3 7 9 10 24 28 28


3 1

-7 0 1

-3

busyhuman   7년 전

memset은 0하고 -밖에 안됫던 기억이..

fill 써보세요.

koosaga   7년 전

memset은 char 형만을 채울 수 있습니다. 

memset(a, 0xff, sizeof(int) * 1000002) 를 하면 (0xff == -1)

0xffffffff / 0xffffffff / 0xffffffff -> -1 / -1 / -1 이 차고요

memset(a, 0x3f, sizeof(int) * 1000002) 를 하면 (0x3f == 63)
0x3f3f3f3f / 0x3f3f3f3f / 0x3f3f3f3f -> 1061xxxxxx / 1061xxxxxx/ 1061xxxxxx 이 찹니다.


0x3f로 memset하면 10억 이상 11억 이상의 값이 저장되니까 이 문제를 푸는데는 가장 좋은 선택이겠네요

sgchoi5   7년 전

전역 변수로 두시면 memset 으로 하실 필요가 없습니다. 0 으로 초기화..

댓글을 작성하려면 로그인해야 합니다.