다른 동적할당 질문입니다.
글고운
질문 제목 : 다른 동적할당 질문입니다.질문 요약 :전 질문과는 다른 동적할당에 대한 질문입니다. realloc()이 어떻게 작동되는지 알고 싶어서 간단하게 실험을 해봤는데 에러가 났는데 왜 이런 에러가 나는지 이유를 몰라서 질문드립니다.질문 내용 :
#includestdio.h
#includestdlib.h
int* getNode();
int main()
{
int *p = getNode();
int i = 0;
for (i = 0; i 5; i++)
{
p[i] = i;
printf(%d\n, p[i]); //1번
}
printf(\n);
p = (int *)realloc(p, 7);
for (i = 5; i 7; i++)
{
p[i] = i;
printf(%d\n, p[i]); //2번
}
printf(\n);
for (i = 0; i 7; i++)
{
printf(%d\n, p[i]); //3번
}
printf(\n);
p = (int *)realloc(p, 9);
for (i = 7; i 9; i++)
{
p[i] = i;
printf(%d\n, p[i]); //4번
}
printf(\n);
for (i = 0; i 9; i++)
{
printf(%d\n, p[i]); //5번
}
free(p);
p = NULL;
return 0;
}
int* getNode()
{
return (int *)malloc(sizeof(int) * 5);
}
1번의 출력은 짤렸지만, 잘 나옵니다.
2번의 출력도 잘 나옵니다.
문제는 3번의 출력인데, p[1]과 p[2]의 값이 이상한 쓰레기값이 나옵니다
4번의 출력도 잘 나옵니다
5번에서 또 문제가 발생합니다. 3번과 동일하게 p[1]과 p[2]의 값이 쓰레기값이 나오고 p[3]도 이상한 값이 나옵니다.
왜 이런 결과가 발생하는걸까요...??
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |
2693591 | 컴파일 에러에서 질문드립니다 (3) | 게자리 | 2025-05-03 |
2693463 | 동적할당 이용시 fwrite사용을 어떻게 해야하나요..? (10) | 일본어못해요 | 2025-05-02 |
2693387 | 배열문제입니다 수정오류캡쳐했습니다 (6) | 연하얀 | 2025-05-01 |
2693356 | text 입출력 내림차순 질문입니다 ㅠ | 빛글 | 2025-05-01 |
2693328 | C언어를이용해서 .txt파일 외에 다른 확장자 파일 삭제가 가능한지.. (2) | 대나무 | 2025-05-01 |