C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38113] Re:Re:Re:Linux 상에서 socket 프로그램의 문제
유영인 Cuperido [cuperido] 825 읽음    2004-11-20 18:15
저 함수에 대한 전체적인 소스가 없이는 도움을 드리기 힘들것 같습니다.
아마도 메모리가 overflow 되면서 다른 곳에서의 영향을 받은것 같습니다.


cuperido

님이 쓰신 글 :
: gdb도 돌려 봤습니다..
: pos에 대한 malloc 할 때 그 전에 size를 전달 받게 됩니다.
: 즉
: if(send(sockFd, size, sizeof(int)) < 0)
:     printf("send size ok!! %d", size);
: 를 실행 시키게 되면 size 값이 출력 됩니다.  ( 제 프로그램에서는 275 였습니다.)
: 프로그램을 돌리면 값이 제대로 출력되는데
: gdb를 돌리면 이상한 값이 출력됩니다..  -_-; ( 117745 였던가?)
: 참고로 int 형 이거든요.. ㅋㅋ
:
:
:
: 유영인  Cuperido 님이 쓰신 글 :
: : heap 공간이 부족해서 에러가 나는 것은 아니신지요? (가능성은 없어 보입니다만..)
: : 아래 구문에서는 특별히 에러가 난다, 라고 말씀을 드릴수는 없을것 같습니다.
: : 아마도 다른 곳과 영향을 미쳐서 에러를 발생시킨것 같습니다.
: :
: : 확실히 저 줄에서 에러가 나는 것인지요?
: : gdb 등을 돌리면, 어디서 에러가 나는지 알 수 있을텐데,
: : 혹시나 gdb 사용법을 모르신다면 리플 달아주시면 간략하게 설명해 드리겠습니다.
: :
: :
: : cuperido
: :
: :
: : 황상준 님이 쓰신 글 :
: : : 함수를 선언해서..
: : : 함수를 두번 불러서 사용하면..
: : : int *pos;
: : :
: : : pos=(int *)malloc(size*sizeof(int));
: : :  <== 두번째 수행 도중 세그맨테이션 폴트가 발생 합니다.
: : :
: : : 처음에는 잘 진행 하는데 왜 두번째 수행부터 폴트가 날까요?
: : : 이거 때문에 미치겠습니다. ㅜ.ㅡ
: : :
: : : 사이즈를 정해서 한번 해봤는데... size 값이 100까지는 폴트가 나지 않습니다..
: : : 그 이상의 크기에서는 폴트 나고...
: : : realloc 도 써봤는데 마찬가지 네요.. ㅎㅎ
: : : free는 함수 끝날때 수행 하거든요..
: : :
: : : 해결책 좀 제시해 주세요.. 1주일째 못하고 있습니다.. ㅜ.ㅡ

+ -

관련 글 리스트
38109 Linux 상에서 socket 프로그램의 문제 황상준 800 2004/11/20
38110     Re:Linux 상에서 socket 프로그램의 문제 유영인 Cuperido 864 2004/11/20
38111         Re:Re:Linux 상에서 socket 프로그램의 문제 714 2004/11/20
38113             Re:Re:Re:Linux 상에서 socket 프로그램의 문제 유영인 Cuperido 825 2004/11/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.