지역변수와 포인터에 관한 질문
하늬
질문 제목 : 지역변수와 포인터에 관한 질문지역변수와 포인터에 관한 질문질문 내용 :font co
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#includestdio.h
int* test(int t){
int* testpointernumber = &t;
(*testpointernumber)++;
return testpointernumber;
}
void main(){
int* pnum = test(5);
printf(pnum의 값은 %d입니다.\n, *pnum);
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
위의 코드를 보시면 test함수와 main함수가 있습니다.
우선 test함수에는 testpointernumber라는 포인터 지역변수가 있습니다.
그리고 testpointernumber가 가리키는곳에 1을 더해주고 return하였습니다.
결과적으로 return되는 값은 testpointernumber이므로, t의 주소값이 됩니다.
그래서 도스창에서 출력되는 결과는 pnum의 값은 6입니다.가 됩니다.
하지만 여기서 의문이 test함수에서 return되는 값은 t의 주소값이라고 했는데
t는 매개변수임과 동시에 test함수의 지역변수입니다.
그래서 test함수가 끝남과 동시에 스택영역에서 변수 t는 제거된다고 알고있습니다.
그런데 어떻게 main함수에선 *pnum의 값이 출력 될 수 있는건가요? (pnum이 갖는 값은 t의 주소값일텐데...)제가 아직 포인터에 대해 정확한 이해를 하지 못하였나봅니다.
혹시 아시는분은 답변 부탁드립니다 ^-^
-
허리품
감사합니다. 덕분에 이해가 갔습니다.
-
바론
메모리가 어디 가겠어요?
다만, 값이 보장이 안된다는 것이죠.
이미 내것이 아닌 것이죠. 물건은 그대로인데...
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692510 | 함수형 중에서.. (6) | 한란 | 2025-04-23 |
2692483 | C언어 함수, Header | 떠나간그놈 | 2025-04-23 |
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |