-3
로컬 변수에 저장된 값을 main() 함수에 반환하려고합니다. 지역 변수의 포인터를 main() 함수에 반환
#include<stdio.h>
int *func();
int main()
{
int *ptr;
ptr = func();
printf("%d", *ptr);
printf("%d", *ptr);
return 0;
}
int *func()
{
int x = 5, *p;
p = &x;
return p;
}
제의 printf() 문
출력 = 5를 제공하지만, 두 번째의 printf() 문 출력으로 쓰레기 값을 제공한다."func()"함수가 종료 된 후 로컬 변수 'x'가 존재하지 않는다는 것을 알고 있습니다. 그렇다면 첫 번째 printf() 문에 대해 5를 왜 인쇄합니까 ?? 코드 내부에서 어떤 일이 발생했는지 알려주십시오.
스페이스 바에 문제가 있습니까? 코드의 들여 쓰기가 좋을 것입니다. –