동적할당은 사용자가 쓴 만큼 메모리를 할당하는 건 알겠습니다
근데 이것을 이용해서 문자열 크기를 지정하지않고 사용자가 입력한 값 만큼 받게 할 수 있는건가요?
저는 캐릭터형 포인터 배열 arr를 선언하고 거기서 캐릭터형 temp[1000]라고 임시저장 변수를 만들었습니다.
그리고 나서 temp의 문자열 길이를 strlen 으로 계산해서 arr에다가 동적할당을 한다는 식으로요
헌데 템프를 크기 지정하지 않고도 문자열을 입력받을 수 있나요??
캐릭터형은 인티저형과는 달리 문자 하나당 배열 하나에 들어가는 식이잖습니까
당연하죠 그래서나온게 std::string임
참고해보겠습니다.
C++ Vector 내부구현보면 이해하기 쉬울듯
감사합니다 C언어 중이긴해도 그래도 비슷할테니 한번 보고 오겠습니다.
c마갤로 오세요
여기에다가 C언어를 질문하면 안되나요?
c마갤이 더 양질의 정보를 얻을 수 있죠 여긴 대부분 웹개발임
걍 홍보임 - dc Cpp
근데 이젠 링크다는 정성까지 보이지는 않네 - dc Cpp
키보드로부터 입력을 받으면 일단 입력버퍼에 입력내용이 저장되고 scanf등으로 해당 버퍼를 읽어옴. 읽으면서 버퍼가 비워지고 ㅇㅇ - dc Cpp
그러면 일단 초기 사이즈를 가령 10으로 잡고, 계속 한글자씩 읽다가 사이즈가 꽉차면 2배씩 늘린다거나 하는 방법으로 가능함 - dc Cpp
realloc함수가 그 역할임. 반복문 내에서 size * 2만큼의 크기를 다시 할당해주는거지. - dc Cpp
malloc으로 동적할당을 해주고 free로 운영체제에 돌려주고 다시 malloc을 하는 동작이 realloc이랑 같은 동작인가요?
좀 다름. 그렇게 하면 기존 데이터가 날아가지 - dc Cpp
아 대충 비슷하단걸 알았습니다.
교수님이 realloc을 사용하지 않고 하라고 하셨습니다 이것을 몇시간째 붙잡고 있었는데 도저히 정답이 보이지 않아서 이게 정답이 있는건가 싶어 올렸습니다.
한번 시도하고 오겠습니다 답변 감사합니다.
그러면 다른 공간 malloc으로 할당(사이즈 두배)후 거기 옮기고 기존 메모리 free해도 됨. - dc Cpp
근데 무제한이라고 해도 결국 힙도 메모리가 한정적이니까 크기 널널하게 파일입출력으로 하자ㅋㅋㅋㅋㅋ - dc Cpp
.. 좋은 방안 감사합니다 선생님 다녀오겠습니다. 짧으면 몇시간 내로 길면 내일 내로 다시 여쭙으로 오겠습니다.