메모리 동적 할당 관련해서 질문 있습니다~
궁수자리
질문 제목 : 메모리 동적 할당 관련해서 질문 있습니다~질문 요약 :메모리 동적 할당할 때 예를 들면 배열의 길이를 무한하게 할 수 있나요?질문 내용 :
사용자로부터 정수를 입력 받는데 -1이 입력되면 프로그램이 종료되면서 그동안 입력 받은 정수가 출력 됩니다.
처음엔 길이 5짜리 배열에 받다가 그 이상이 되면 3씩 커지는 배열을 생성해서 계속 이어나가는 형식인데
정수를 16개인가 입력하면 갑자기 오류 메시지가 나오면서 종료되는데요
메모리 동적 할당을 이용하면 -1을 입력할 때 까지 무한히 배열이 커져야 하는것 아닌가요??
아래 코드는 제가 짠 코드인데요 뭐가 문제일까요..(아직 실력이 좋지 않아 코드가 쓸데없이 복잡하네요 ㅠㅠ)
#include stdio.h
#include stdlib.h
int main(void)
{
int arr[5]; //최초 배열
int i, j, count=0, input, a=0, b=0;
int *parr1, *parr2; // 길이가 5이상이 되었을 때 동적 할당으로 정수를 받아줄 배열들..
for(i=0; i5; i++) //최초 길이 5이하의 정수 입력받을 때
{
printf(number ? : );
scanf(%d, &input);
arr[i]=input;
if(arr[i]==-1) // -1 입력 되면 프로그램 종료되면서 그동안 입력한 정수 출력
{
for(i=0; icount; i++)
printf(%d, , arr[i]);
break;
}
count++;
}
if(count==5) // count=5가 되었을 때
{
parr1=(int*)malloc(8*sizeof(int)); //길이 8인 배열 생성
for(i=0; i5; i++)
parr1[i]=arr[i];
for(i=5; i8; i++) //배열의 6,7,8번 요소 입력 받기
{
printf(number ? : );
scanf(%d, &parr1[i]);
if(parr1[i]==-1) // -1 입력시 종료
{
for(i=0; icount; i++)
printf(%d, , parr1[i]);
break;
}
count++;
}
}
if(count=8) // count가 8이상일 때
{
for(j=1; ; j++) // 배열의 동적 메모리 할당을 위한 변수 j를 이용한 반복
{
if(count%2==0) // count가 8, 14, 20, ~~~
{
parr2=(int*)malloc(8*sizeof(int)+(3*j)*sizeof(int));
for(i=0; icount; i++)
{
parr2[i]=parr1[i];
}
free(parr1);
for(i=count; icount+(3*j); i++)
{
printf(number ? : );
scanf(%d, &input);
parr2[i]=input;
if(parr2[i]==-1)
{
for(i=0; icount+a; i++)
printf(%d, , parr2[i]);
break;
}
a++;
}
a=0;
}
else // count가 11, 17, ~~~
{
parr1=(int*)malloc(8*sizeof(int)+(3*j)*sizeof(int));
for(i=0; icount; i++)
{
parr1[i]=parr2[i];
}
free(parr2);
for(i=count; icount+(3*j); i++)
{
printf(number ? : );
scanf(%d, &input);
parr1[i]=input;
if(parr1[i]==-1)
{
for(i=0; icount+b; i++)
printf(%d, , parr1[i]);
break;
}
b++;
}
b=0;
}
if(input==-1)
break;
count+=3;
}
}
return 0;
}
| 번호 | 제 목 | 글쓴이 | 날짜 |
|---|---|---|---|
| 2752142 | 더블 포인터 관련 최대최소값 구하기 (2) | 풀잎 | 2026-10-21 |
| 2752115 | c언어 이상한질문 (4) | 모드니 | 2026-10-21 |
| 2752085 | 문자열을 랜덤하게 출력해서 대체,삽입,삭제 횟수를 각가 표시하고 그걸 표 형태로 출력 | 슬아s | 2026-10-20 |
| 2752056 | 포인터 && 배열 질문요~ (2) | 해찬나래 | 2026-10-20 |
| 2752031 | x^n 구하는 코드 짜봤는데 값이 틀려요 ㅠㅠ | 세실 | 2026-10-20 |
| 2752000 | 나 정말 미치겠어요..ㅠㅜ (4) | 다이 | 2026-10-20 |
| 2751978 | 문자열 질문이요.. | 초시계 | 2026-10-19 |
| 2751945 | 숫자 맞추는 프로그램이요 ㅠㅠ (1) | 동은 | 2026-10-19 |
| 2751917 | C언어 이중 연결 관련 질문합니다. | 유우 | 2026-10-19 |
| 2751888 | return의 정확한 의미좀 알려주세요 (3) | 올해1살 | 2026-10-19 |
| 2751857 | 포인터 배열 (2) | 터큰 | 2026-10-18 |
| 2751831 | 연산자? 질문입니다 (2) | 진주 | 2026-10-18 |
| 2751800 | C언어 기초질문입니다.. (3) | 핫블랙 | 2026-10-18 |
| 2751739 | 파일 출력을 구조체로 받을 때, 파일의 끝을 판별하는 방법을 알려주세요. (2) | 얼 | 2026-10-17 |
| 2751715 | unresolved external symbol 에러... | 이룩 | 2026-10-17 |
| 2751686 | 변수 설정에 관한 질문입니다. | 꽃달 | 2026-10-17 |
| 2751655 | 자료구조 연습문제 | 한무릎 | 2026-10-17 |
| 2751631 | gets 함수 질문이요. (4) | 해늘 | 2026-10-16 |
| 2751553 | 퀵정렬 소스인데 주석좀 달아주세요 (1) | 싴흐한세여니 | 2026-10-16 |
| 2751528 | 저기 이거하는법좀 질문.. (2) | 가람슬기 | 2026-10-15 |
