동적할당 마지막질문입니다.(수정)
민트향
질문 제목 :calloc함수의 변수 size.
질문 요약 :size에5를 대입. calloc함수로 동적할당. 그다음 입력받은 정수의 갯수가 5개를 넘어가면 size의 값을3씩 증가시킴.
생각해보니까 calloc함수의 변수 size가 5인상태로 함수가 진행되는것 같은데, 밑에서 size의 값을 3씩 증가시키도록
재지정해도영향을끼치지 못하는 것인가요?
질문 내용 :
#include stdio.h
#include stdlib.h
int main(void)
{
int i;
int b=1, size=5; //b= 입력된 정수의 갯수, size= 배열의 길이(5+3x)
int str[5];
int *str2;//str2= 정수의 갯수가 5이상일때 쓰이는 배열
str2=(int*)calloc(size,sizeof(int));
if(str2==NULL){
puts(메모리 할당에 실패!);
exit(1);
}
while(1)
{
if(b6)//정수의 갯수가 5개이하까지
{
printf(number ?: );
scanf(%d, &str[b-1]);
if(str[b-1]==-1)//a가 -1이면 반복문 탈출
break;
b++;
}//if문의 끝
else //정수의 갯수가 6개이상부터
{
if(b==6){
for(i=0;i5;i++)
str2[i]=str[i];
}
if(b%3==0)
{
size+=3;
}
printf(number ?: );
scanf(%d, &str2[b-1]);
if(str2[b-1]==-1)//a가 -1이면 반복문 탈출
break;
b++;
}//else문의 끝
}//while문의 끝for(i=0;ib-1;i++)
printf(%d, ,str2[i]);//입력받은 정수들 출력
free(str2);
return 0;
}