free는 어디에 둬야하나요?
잔디
2023.04.01
#include Turboc.h
char * Func(int strnum,char *str);
void main(){ char str[256]; char *pstr;
gets(str);
pstr=Func(strlen(str),pstr);
gets(pstr);
printf(%s,pstr);
free(pstr);}
char * Func(int strnum,char *str){ str=(char *)malloc(sizeof(char)*strnum); return str;
}
소스 겉으로는 오류가 없어보이지만 한번 실행하면 오류가 뜨는군요
free 떄문인것 같은데 free를 어디다 둬야 정상적으로 작동하나요?
-
은아
흠
아무 이상 없습니다만
gets 로 입력받을수 있는 글자수는 알수 없으므로 조금 위험한 코드이며,
것보다 첫번째 입력받은 글자수 보다 두번째 입력받은 글자수가 더 많으면
오류가 뜨게 되네요.
무슨 동작을 원하시는지 잘 모르겠네요.
전체적인 수정이 필요해 보입니다.