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

C/C++ Q/A
[4888] Re:malloc()에 대한 질문입니다.
레인싱어 [rainsinger] 1553 읽음    2005-01-19 19:47
일단 함수내 명시 선언한 함수의 prototype과 실제 호출문의 파라메터가 다릅니다. 굳이 malloc()
함수를 명시 선언 하시고 싶으시다면 

:     char *malloc();

요 문장을

                void* malloc(size_t size);

등으로 표시하시면 해결될 듯 합니다. 물론 그 라인 자체를 삭제하셔도 무방합니다.

이 외에도 한가지 더 말씀 드릴 것은, malloc()함수의 리턴
타입은 void*이고, 그 리턴값이 assign되는 변수 ps[]는 char* 라는 점입니다. 아마도 implicit
type converting 경고 정도가 나오지 않을까 합니다. (컴파일러가 없어서 확인은 못드리겠군요.)
따라서 다음 문장도 고쳐주시는 것이 좋겠습니다.

:         if((ps[index] = malloc (strlen(temp)+1))==NULL) 
이 문장을

        if((ps[index] = (char*)malloc (strlen(temp)+1))==NULL) 

이렇게 고치는 것을 추천드립니다. 마지막으로 한가지만 더 말씀드리면 ps[]가 free되지 않고
프로그램이 끝나는군요. 그 부분도 추가하시면 금상첨화겠습니다.




Rainsinger.



한성현 님이 쓰신 글 :
: #include <stdio.h>
: #include <string.h>
: #include <stdlib.h>
:
: #define LINE 81
: #define MAX 100
:
: void main()
: {
:     char temp[LINE];
:     char *ps[MAX];
:     int index=0;
:     int count;
:     char *malloc();
:
:     puts("Name some anything.");
:     puts("Enter them ont at a time; [enter] at the start");
:     puts("of a line to end your list. Okay, I'm ready.");
:
:     while(index<MAX && gets(temp)!=0 && temp[0]!='\0')
:     {
:         if((ps[index] = malloc (strlen(temp)+1))==NULL)  // Extra parameter in call to malloc()
:         {
:             printf("Out of Memory \n");
:             exit(0);
:                 }
:         strcpy(ps[index],temp);
:         if(++index<MAX)
:             printf("That's %d, Continue.\n",index);
:     }
:
:     puts("Okay, here is what I've got.");
:     for(count=0; count<index;count++)
:         puts(ps[count]);
: }
:
: 이상하게도 malloc()함수만 들어가면 Extra parameter call 에러가 납니다.
: 터보씨 3.1윈도우용 버전이고 윈도우 xp 입니다..
:
: ps[index]=malloc(strlen(temp)+1);
:
: 이문장이 잘못된건가여??
: 가르침 부탁드립니다~~

+ -

관련 글 리스트
4886 malloc()에 대한 질문입니다. 한성현 1281 2005/01/18
4888     Re:malloc()에 대한 질문입니다. 레인싱어 1553 2005/01/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.