배열 동적할당질문
솔관
2023.04.01
질문 제목 : 배열 동적할당질문질문 요약 :문자열 길이를 얼마를 입력받을지 모르기때문에 배열크기를 동적할당해서 하고싶은데요 어떻게하는지 몰라서요질문 내용 :
#includestdio.h
#includestring.h
#includestdlib.h
int main(void)
{
char *str;
int i = 0, j = 0;
scanf(%s,&str);
i = strlen(str);
char *str1 = null;
str1 = (char *)malloc(sizeof(char)*i);
return 0;
}
이렇게 선언하는거 맞나요? 문자열입력받아서 str1 에 크기 할당해놓는게요
틀리면 소스좀 고쳐주시고 왜틀렸는지도 설명간단하게 해주세요
그리고 이다음 배열에다가는 값을 어떻게넣나요? 반복문인거같은데 이것도좀 알려주세요
배열에다가 값을 넣었다면 나중에 다 쓰고 free() 로 써줄때 free(str1) 하면 되는건가요?
아니면 배열 입력할때처럼 반복문으로 다 free(str1[0~] 이렇게해줘야되는건가요?
-
딥핑크
문자열을 저장할 메모리를 먼저 확보하고 그 메모리의 주소를 얻어서,
scanf 에 전달해야겠죠? 어찌 되었던 입력된 문자열의 길이는 알 수가 없네요.
충분한 크기의 배열을 만들어서 사용하는 것이 좋겠네요.