동적배열이라는게 예를들면 미리 크기를 정해놓으면 사용자에 따라 크기가 부족할수도 있고 오히려 남을수도있어서
그 크기를 사용자한테 입력해서 정해놓는거잖아
근데 사용자도 크기를 몰라도 동적배열이 가능함?
예를들면 입력한 수를 다 더하는 프로그램을 만들었어
원래 동적배열이면 먼저 몇개를 입력할지 정하고 수를 입력하는거잖아
예) 몇개를 입력할건가요 10(입력) 1+2+3+4+5+6+7+8+9+10 = 55 나오는데
내가 원하는건 사용자가 몇개를 입력할지도 모른다는거지
예) 몇개를 입력할건가요? 모르는데 일단 내가 입력한 만큼만 크기를 정해놔
뭐 이런식으로는 안됨?
미리 할당을 해놓으면 되잖아
동적할당은 프로그래머가 하는거고, realloc으로 재할당 가능하니까 필요한만큼 더 늘려서 할당해주면 되겠지 - dc App
뭐 네가 만약 10칸 해뒀음. 근데 사용자가 10개 입력하고 더 입력한대. 그럼 다시 20칸으로 늘려줘. 20개 입력했고 더한대. 그럼 40칸으로 늘려주고... 뭐 등차수열로 늘려도 상관없구 - dc App
재할당이 가능함?? 사용자 입장에서 먼저 10개 사용한다 입력했는데 크기를 30개로 더쓰고싶음 이러면 값 입력하는 도중에 크기를 더 늘릴수도있어?
아무튼 반복해서 입력받을거 아냐. 사용자가 한번에 여러개를 입력해도 결국 입력버퍼에서 하나씩 꺼내는걸 반복할텐데. realloc 구글링해봐 - dc App
사실 네가 입력받은 숫자 다 더하기만 할거면 배열도 필요없음. 입력할 개수 받는다고하면 amount 정수형 하나 선언하고, sum 선언해서 0으로 초기화하고. scanf에서 쓸 변수 temp같은거 선언해서 입력 받을때마다 sum += temp하면 되는데. - dc App
뭐 그냥 예시니까..음..그래. - dc App
그래서 자료구조를 공부하는거야 친구야
일단 c 다 끝내놓고 자료구조론 공부하면됨?
크기가 30개인 배열을 할당하고 기존 배열을 전부 복사하는거임
stl이나 컬렉션에서 크기 자동으로 늘어나는 자료구조들 전부 처음에 크기를 잡아뒀다 꽉차면 크기를 더 늘려서 재할당 하는 방식임
그게 동적배열 아닌가요. 입력받은 값으로 배열크기 정하는거.