c언어 기초 막 배우고있는 잉연데
동적메모리할당에 대해서 잘 모르겠어서 질문좀 할게요 형들
배열을 이용해서 입력받으려고 하는데 입력받는 데이터의 크기를 알 수 없을 때
배열을 무작정 크게 잡으면 메모리 낭비가 있잖아요.
그래서 malloc을 사용려고 하는데
도저히 문자형 배열일 경우 malloc의 파라미터를 sizeof(char)*x 에서 x를 어떻게 해야할지 모르겠음요 ㅠㅠ
문자를 입력받기도 전에 문자열의 길이를 측정할 수 도 없는거고..
이 벽을 뚫어주세요ㅠㅠ
콘솔창에서 man malloc 이라고 치거나 man realloc이라고 쳐 보세여
아니면 구글에서 man malloc kernel.org 라고 쳐도 되여
넉넉하게 잡아놓고 쓰면된다. 버퍼 256바이트 정도로 잡아놓으면 충분히 될듯.
어차피 입력받기 전까지는 얼마나 입력받을지 모르니 넉넉하게 준비해두는수밖에 없다.
아 그러면 얼마나 입력받을지 모르는 경우 동적메모리 할당을 할 수 없는건가요?
어떻게 입력받는건지 이해가 되질 않은데..; 이제 자료구조를 배워야할 때가 아닐까;
동적할당도 배열이랑 똑같아.. 자동으로 크기를 조절해주는게 아님..
내가 아는 배열과의 차이점은 메모리 영역중 heap 영역에서 할당받아서.. free 하기전까지 계속 쓸수있다는거임..
동적이란 어두가 붙은게, 자유롭게 할당하고 해제할수있기때문에, 그 뜻으로 동적이란 단어를 붙인거같은데..
배열은 정적이잖아. 한번 선언해서 고정되서 쓰니까 ㅋㅋ
아! 감사합니다 횽들 ㅠㅠ 내가 멍청했었네요 ㅠㅠ c언어도 깔짝배우고 c++도 깔짝 배우다보니 객체지향이랑 절차지향이랑 헷갈리는듯 답변해준 횽들 고마워요!