본문 바로가기

Engineering/C/C++25

STL accumulate를 부동소수점(float, double) 배열이나 컨테이너에 사용 시 유의 사항 부동 소수점(float, double) 타잎의 배열이나 stl 컨테이너의 값을 sum할 때 유의사항. 루프를 돌면서 배열의 값을 다 더하는 것과 std::accumulate 의 결과가 다를경우가 발생할 수 있다. 아래 링크를 통해 결과 확인이 가능하다.https://ideone.com/oBJVX8 이것 때문에 디버깅 하느라 꽤나 애먹었음. -_-; 그 이유는 accumulate의 3번째 인자인 init value의 형(type) 때문.http://stackoverflow.com/questions/3604478/c-stdaccumulate-doesnt-give-the-expected-sum template을 이용한 코딩을 할 때는 3번째 인자인 init value에 0을 T로 타잎 캐스팅 하면 됨. sta.. 2015. 8. 19.
C++에서의 빈 구조체의 크기(Size of Blank Struct in C++) struct stZero {}; int size = sizeof(struct stZero); C++ 컴파일러러로 컴파일을 한다고 했을 때, size의 값은 과연 얼마일까? ㅋㅋ 참고링크#1 : http://alones.kr/blog/750 참고링크#2 : http://minjang.egloos.com/2049827 2011. 9. 19.
UDP Broadcast 서버/클라이언트 브로드캐스트(Broadcast)와 관련된 모듈을 구현할 일이 있어 간만에 열혈강의 소켓 프로그래밍 책을 뒤졌다. 내용도 알차고 설명도 잘 되어있고, 실용적인 예제가 많은 좋은 책인 것 같다. 물론 IOCP나 Overapped IO같은 녀석들을 이용해 수백개 수천개의 클라이언트를 관리하는 서버 프로그래밍을 위해서는 좀더 심도 있는 책을 봐야겠지만, 뭐 기껏해야 20개 이내의 클라이언트가 연결될 서버에 거창한 테크닉따위는 필요없으니 .흐 그나저나 출판사가 바뀌었다. 예전엔 프리렉이었던 것 같은데. TCP/IP 소켓 프로그래밍(2010) 카테고리 컴퓨터/IT 지은이 윤성우 (오렌지미디어, 2009년) 상세보기 아무튼 아래의 코드는 열혈강의 TCP/IP 소켓프로그래밍의 예제 + 인터넷에서 좀 알아본 코드를 합쳐.. 2010. 5. 12.
삽질을 하다가... 디버깅이 어려운 이유는 간단하다. 사람들은 자기가 보고자 하는 것만 보기때문이다. 아는 것만 보려하기 때문이다. 코드의 에러를 예측할 때는 자기가 아는 만큼 안에서 예측을 하게 된다. 고로 경험과 지식, 그리고 이 것들을 지혜로 흡수한 사람은 당연히 디버깅을 잘한다. 결론 : 무식이 죄다. ㅋ /* blah blah blah ... ... ... */ BYTE* buf = new BYTE(14); /* blah blah ... ... ... */ delete [] buf; 어제 런타임 에러가 난 버그가 포함된 코드이다. 분명히 delete [] buf; 이 구문에서 런타임 오류가 나는 걸 바로 잡아냈다. 처음엔 후~ 뻔하지 동적으로 할당한 메모리를 초과해서 내가 무슨 짓을 하였구나~. 그런데 난 절대로 .. 2009. 8. 16.