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

C/C++ Q/A
[6462] farmalloc, farfree 문제 (Real-DOS)
삐원 [ktw3857] 5814 읽음    2009-10-17 19:19
Dos 용 툴을 개발하고 있는데요.

데이터 전송때문에 128KBytes 만큼의 메모리를 버퍼로 잡고 써야됩니다.
malloc 함수로는 범위를 넘어서버려서 farmalloc 함수와 farfree 함수를 사용하여 메모리할당/해제를 해주려고 하는데요.
이게 두세번 할당/해제를 반복해버리면 그 뒤부터 할당이 실패하네요.
(컴파일은 Boland C++ 4.5 에서 large 모델로 했습니다.)

왜그럴까요?
물론 버퍼를 잡아놓고 사용하다가 프로그램 종료할때 해제하면 해결되는 문제이긴 하지만 궁금해서 질문올립니다.

다음은 테스트한 소스입니다.(물론 리얼도스에서 테스트했습니다.)
int main( int ac, char *av[] )
{
    int i=0;
    for( i=0; i<10; i++)
    {
        char far *pt = (char far *)farmalloc(131072L);        // 1024*128
        printf( "[%d], farmalloc() test, Pt[0x%lX]\n\r", i, pt );

        farfree( pt );
        printf( "[%d], farfee([0x%lX]), i, pt );
   }
    return 0;
}
도와주세요.

+ -

관련 글 리스트
6462 farmalloc, farfree 문제 (Real-DOS) 삐원 5814 2009/10/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.