int num[2000];
가 있을때
for(int i=0;i<2000;i++) num[i]=-1;
하는것보다
memset(num,-1,sizeof(num));
하는게 더 빠르다
근데 memset은 1바이트 단위로 채우는거기 때문에
보통 0하고 -1로 초기화 하는거 말고는 잘 안씀.
-1을 1바이트 바이너리로 나타내면 11111111인데
이게 num[0]에 4개가 들어감
11111111 11111111 11111111 11111111 그래서 -1 제대로 초기화가 됨. 0도 마찬가지.
근데 만약에 1을 넣는다면 00000001이 들어감.
그럼 num[0]은
00000001 00000001 00000001 00000001 즉 16843009로 초기화가 되어버림.
근데 이것도 존나 큰 값으로 초기화 할때 씀.
이를테면
int INF=16843009;
int num[2000];
for(int i=0;i<2000;i++) num[i]=INF;
이렇게 초기화 하면 느린데
int num[2000];
memset(num,1,sizeof(num));
이렇게 초기화 하면 빠르다.
꿀함수임 조음
저런걸 for문을 돌리는 사람도 있나...
이분 버츄얼테이블도 0으로 밀어버렸다네요
memset 이 1바이트씩 채우는 함수라는 부분에서 한 번 다시 웃어주마.
http://blog.loudhush.ro/2010/11/looking-at-memsets-implementation.html
읽어봐라.
그래 알았어 니 많이 아니까 좀 짜져
어디서 인정 못받아서 병걸렸나
컴파일러가 군더더기를 안만드는 환경에서는, 첫째 주소가 얼라인 되어 있고, 둘째 전체 크기가 시스템 워드의 단위고, 셋째 시스템 워드 단위로 for 문을 돌리는게 memset 보다 더 빠를 수 있다. memset 은 예외처리를 한 후 시스템 워드나 32비트 단위로 write 해주니까 말야.
그러니까 무식한 소리 그만하고 공부 열심히 해라.
그니까 너 모르니까 좀 짜져 어디서 욕 못들어쳐 먹어서 병걸렸나? 하긴 무식한소리해서 내가 가르쳐주니 다행이긴 하다.
부들부들부들부들
아 미안하지만 그렇게 로우레벨까진 내 관심사가 아니다. 나중에 관심이 생길진 모르겠지만 나는 슈도코드로라도 로직을 짜는데 관심있지 그렇게 까지 심도있게는 할 생각 없다. 그리고 남이 가르침을 청하기전에 남을 가르치려 하지 마라 그거 안좋은 습관이다
빼애액! 나 좀 아는데 빼액!
ㅋㅋㅋㅋㅋㅋㅋ
니 글 제목처럼 '혹시나' 가 아니라 '역시나' 오해하고 있어서 알려준거다. 낄낄.
ZeroMemory
그리고 남이 가르침을 청하기전에 남을 가르치려 하지 마라 그거 안좋은 습관이다
이 글의 상태가...?
고래싸움에 고래고기먹는다
근데 program. 아는거 진짜 많다
코세니깐.
코세가 뭔뜻임 ??
코드 세이퍼 ?
진심 몰라서 물음
ㅇㅇ 코드세이퍼.
program. 한테 궁금한게 참많네 ㅋㅋㅋ
새글로 물어봐봐.
엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 설명을 할거면 제대로 하던가 아니면 하지말지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 무릎 탁 치고 갑니다 하하하
쪽팔리시라고 개념글 추천 드릴게요