디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

어제 C++ 코드짠거 버그 생긴다고 푸념한 게이인데

ㅇㅇ(125.134) 2024.11.30 11:13:11
조회 55 추천 0 댓글 3


일단 해결은 했음.

전체 코드 정리하기엔 너무 복잡해져서, 중요한 부분만 얘기하자면



기본적으로 Temp로 nMAX_LINE_CHARS+1 만큼 읽으면서

AllBuf의 크기를 늘리면서 덧붙이는 구조임.


---------------------------------------------------------------------------------------------------------

char* pszAllBuf = NULL;

char* pszTemp = new char[nMAX_LINE_CHARS + 1];

...


while(true){

  ..(1)

  memset((void*)pszTemp, '\0', nMAX_LINE_CHARS + 1);

  bReadData = (NULL != fgets(pszTemp, nMAX_LINE_CHARS + 1, m_pStream));

  memcpy(pszTemp를 pszAllBuf로 복사)

  ..(2)

}

...

if (pszTemp) delete [] pszTemp;

---------------------------------------------------------------------------------------------------------

*최종적으로 pszAllBuf를 얻음




대충 이런구조임.(간단한 부분만 써놔서 뭔가 빠진거 같지만 대충 할건 다했음)

(쓰고보니 코드가 C++ 스타일이 아니긴 한데 new ~ delete가 문제니까 맞긴 함)


그런데 읽는게 줄단위인데

처음에는 괜찮은데

빈줄이 나타나는 순간 그 밑으로는 앞부분이 이상하게 다음 값으로 채워짐.

pszTemp는 멀쩡한데, 받는 변수가 이상해짐.


"니가 뭔가 이상하게 병신같이 짰겠지.."라고 생각하겠지?

저게 다른데서 받은 class 파일에 안에 새로 함수를 작성한건데,

새 함수니까 그대로 옮겨서 새로 테스트 프로젝트 만들어서 main 함수에서 돌리니까 멀쩡해짐.

프로젝트 옵션도 동일하게 맞췄고, 생기는 버그 자체가 일부 이상이기 때문에 옵션같은거 문제는 아님.

(옵션 문제면 전체가 비정상이 됨. 전체가 이상하면 오히려 오래 걸릴문제가 아님.)



적어도 논리적인 실수는 아마도 아닌거 같음.

나도 전체 코드 올리고는 싶은데, 

저거 원인 찾는다고 테스트 코드 잔뜩 추가해서 주석 덩어리된 난장판 코드를 올리기도 싫고, 

그걸 새로 정리하기도 귀찮음. 미안.





아차차,

해결한 방법을 얘길 한다는걸 깜빡했네.

두 가지가 있음.(둘 중 하나만 하면 됨)


1. 위에 while루프 속에 ..(1) ..(2) 자리에 아래 코드 추가해서 넣으니 해결

   ..(1) pszTemp = new char[nMAX_LINE_CHARS + 1];

   ..(2) delete [] pszTemp;

   이렇게 하면 메모리 누수는 없는데, 루프 돌때마다 버퍼를 계속 새로 만든다는게 엿같음.


2. char* pszTemp = new char[nMAX_LINE_CHARS + 1];

   ->

   char* pszTemp[nMAX_LINE_CHARS + 1] = {0,};

   위와 같이 동적이 아닌 정적 배열로 만듬.

   물론 저렇게 하니까 포인터 문제 생겨서 (char *) 로 캐스팅 필요한 부분은 다 했음.

   delete [] pszTemp; 이거도 지우고.


동일한 코드에 딱 저 부분들만 바꾼거.


해법만 봐도 뭔가 논리적 문제는 아닌거 같지? ㅠㅠ

뭔가 배열에 lock을 걸어놓은 느낌임. 물론 멀티쓰레드 아님.


애초에 내가 논리적 구성을 잘못했으면 1,2번 해법과 

main함수에 그대로 복제해서 해결되면 안되는 문제임 ㅠㅠ


아무튼 한 건 해결. ㅠㅠ



추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 오픈 마인드로 이성을 만날 것 같은 스타는? 운영자 24/12/02 - -
2779419 스팀게임 번들에 관한 글 발명도둑잡기갤로그로 이동합니다. 12.01 23 0
2779418 자영업자가 이야기하는 배민의 진짜 현실 발명도둑잡기갤로그로 이동합니다. 12.01 35 0
2779416 하하 별 부부 사랑의 마지막 단계 발명도둑잡기갤로그로 이동합니다. 12.01 16 0
2779413 일제강점기 일본회사의 한국어 광고 발명도둑잡기갤로그로 이동합니다. 12.01 17 0
2779412 ㅈㄴ신기한게 대학생땐 프로그래밍 재미없었는데 프갤러(39.120) 12.01 43 0
2779410 일손도 줄었겠당- 밥 먹고 와야겠당- [1] 프갤러(121.172) 12.01 50 1
2779409 서울si3200vs지방 서비스 3000 [7] 프갤러(223.39) 12.01 88 1
2779407 내가 만들고 있는 거 다른 사람이 해도 되냐고 물어봄- 프갤러(121.172) 12.01 51 1
2779406 후- 딱딱 끊기는 거 처리 됐땅- 프갤러(121.172) 12.01 32 0
2779405 제가 수년 전에 십자가를 점으로 대체하자고 말했는데 발명도둑잡기갤로그로 이동합니다. 12.01 25 0
2779403 아 배경이 딱딱 끊어진다- [3] 프갤러(121.172) 12.01 60 0
2779401 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 12.01 28 0
2779399 으휴 프붕이들 또 한건 했네 ㅇㅇ갤로그로 이동합니다. 12.01 46 0
2779398 지듣노 발명도둑잡기갤로그로 이동합니다. 12.01 14 0
2779388 인생이 너무 괴롭구나 [1] 딱님갤로그로 이동합니다. 12.01 34 0
2779386 영봉 1억개발자가 될끄양 [2] 아스카영원히사랑해갤로그로 이동합니다. 12.01 66 0
2779384 어차피 와꾸, 인간 관계 좆박살, 돈도 없어서 결혼 딱님갤로그로 이동합니다. 12.01 27 0
2779383 오늘 한가람 미술관 간다 창업게이(106.101) 12.01 22 0
2779380 스파르타 코딩클럽 여기 경쟁률 있음? [2] 프갤러(112.155) 12.01 47 0
2779378 배경도 3d로 움직이면 좋을 듯. [1] 프갤러(121.172) 12.01 35 0
2779377 크리스마스 시즌이구나 발명도둑잡기갤로그로 이동합니다. 12.01 32 0
2779376 Rx 포켓몬 이펙트가 적용되었다- 프갤러(121.172) 12.01 29 0
2779374 힘두러 우앙 ㅇㅅㅇ [5] 나트륨찡갤로그로 이동합니다. 12.01 38 0
2779373 Luisa Marion-The kite 발명도둑잡기갤로그로 이동합니다. 12.01 13 0
2779372 자기 자신을 프로그래밍하라 [1] ㅇㅇ(118.235) 12.01 46 0
2779371 개발이 뭐라고 생각하냐 jonny갤로그로 이동합니다. 12.01 42 0
2779369 Raspberry Pi 호환 Compute Module 발명도둑잡기갤로그로 이동합니다. 12.01 26 0
2779367 나 만두빚어옴. 내 딸 아이유 씹가능이냐?? ㅇㅇ(123.213) 12.01 43 0
2779366 책을 한권만 읽은 사람이 제일 무섭다는 드립도 있잖아 ㅇㅇ갤로그로 이동합니다. 12.01 48 0
2779365 뭔가 실패한 연극같은 사람들이 있음 [12] 공기역학갤로그로 이동합니다. 12.01 118 3
2779364 확실히 깃허브에서 스택 뱃지 내리는게 맞는 것 같다 ㅇㅇ(211.246) 12.01 50 1
2779362 C++하고 러스트 중에 C++ 선택하는 행위가 [1] ㅇㅇ(39.7) 12.01 69 0
2779361 나이가 들수록 아스카영원히사랑해갤로그로 이동합니다. 12.01 55 0
2779360 변태의 기준. 당신은? 촌흥녘자(119.202) 12.01 38 0
2779358 여자아이몸은왤케예쁠깡 ㅇㅅㅇ [3] 땨댱이(106.101) 12.01 61 0
2779357 연봉 2억 받는 프론트 나님 질문 받는다 [7] AppHiki갤로그로 이동합니다. 12.01 104 0
2779356 이제 카지노 가야겠다. 40대프린이(175.176) 12.01 41 0
2779352 어제 딴 에시아 캐릭터 공개- 프갤러(121.172) 12.01 44 1
2779350 이세계에서는내가레벨99전설힐러영애?! ㅇㅅㅇ [1] 땨댱이(106.101) 12.01 46 0
2779349 여자는 가슴큰거보다 피부좋은게 베스트아니냐? [4] 프갤러(119.172) 12.01 67 0
2779348 왜 프갤 1페이지가 인싸, 찐따 떡밥으로 도배된 거냐? [3] 딱님갤로그로 이동합니다. 12.01 44 0
2779347 오늘 AoC 열리는 건 알고 프갤하냐 [2] 딱님갤로그로 이동합니다. 12.01 45 0
2779346 엔트로피로 보는 다중우주가 틀린 이유 프갤러(121.172) 12.01 40 0
2779344 나 님질 문받 는 다 딱님갤로그로 이동합니다. 12.01 22 0
2779342 Rx 포켓몬 카드 스튜디오 제작하려고 보니까- 프갤러(121.172) 12.01 34 0
2779340 로그인 쪽에서 에러가 나는뎅- [1] 프갤러(121.172) 12.01 45 0
2779338 신입 면접 DB설계도 물어보냐 ㅇㅇ(118.235) 12.01 41 0
2779336 한국은 논리력 안되는 새기들이 너무 많음 [2] ㅇㅇ(114.30) 12.01 70 0
2779334 웹개발 프로그래밍 공부할때 필요한게 수학이 머머있냐 [1] 프갤러(119.172) 12.01 61 0
2779331 보안 취약점 많다고 리눅스 왜 쓰냐니 정말 아기 같구나 [3] 프갤러(27.163) 12.01 86 0
뉴스 [포토] 규빈, 상큼한 무대 디시트렌드 12.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2