동적 할당시 질문드립니다.!!
친화력
2023.04.01
질문 제목 : 동적 할당시 질문드립니다.!!질문 요약 :동적 할당할때 4바이트씩 할당 할때 마다 그 공간에 값을 대입 하려고 하는데, 잘 안 되네요..
아래는 해당 코드 입니다.while(scanf(%d, &n)) { coeff = (int *)malloc(sizeof(int)); // *coeff++= n; num_of_terms++; }
질문 내용 : while 조건문에서 정수값이 입력 될때 마다 coeff 라는 포인터에 int크기 만큼 할당 해주고 그 값에 n을 대입해주려고 하는데 잘 안 되네요.. 아시는 분 답변 해주시면 감사하겠습니다..(num_of_terms은 0으로 초기화 된 상태입니다.)
-
가지등
coeff = (int*)malloc(sizeof(int)); 함수가 호출될 때마다 coeff 가 가리키는 메모리가 인접한 곳에 할당된다는
보장이 없는데, 포인터의 주소를 증가 시키면 안됩니다. 정적인 배열 같은 경우나 인접한 메모리에 서로 할당이 되니 ++, -- 같은 표현이 가능하지만...위 같은 경우, 그것과는 다른 문제지요.
다른 특별한 자료구조를 이용하는게 아니라면, coeff 를 정적인 포인터의 배열로 선언한 뒤 할당을 해주는 방식도 있겠습니