당연히 다릅니다. int 하나가 4바이트니 int [10000]은 4만 바이트고, char 하나가 1바이트니 char [10000]은 1만 바이트입니다.
그런데 memset 때문에 메모리 초과가 난다는 건 이상한 말입니다. memset은 이미 할당받은 곳에 데이터를 써줄 뿐이지 메모리를 추가로 할당받는 것이 아니거든요.
22번째 줄 주석에 저걸로 '바꾸면' 메모리 초과가 난다고 하셨는데 memset(check, 0, sizeof(check)) 자체에는 아무런 문제가 없으며 단지 out 배열의 내용을 초기화하지 않는 것이 문제가 될 뿐입니다.
3038ksh 6년 전
memset을 사용하는데 있어서 int형 배열과, char형 배열의 메모리 사용량이 다른지 궁금합니다.
int [10000]를 memset으로 초기화 시키는 코드는 메모리 초과가 나는데,
char [10000]를 memset으로 초기화 시키면 메모리 초과가 안납니다.
int가 4바이트고 char가 1바이트라서 그런 건가요?