알고있는 후배가 면접을 보러가서 c 문제를 받았다고 합니다.
아래 코드에서 뭐가 잘못되었는지를 말하라는 문제였는데요..
그 코드는 아래와 같습니다.
-------------------------------
int& sum(int a, int b)
{
int result;
result = a+b;
return result;
}
main()
{
int& result = sum(3, 5);
printf("%d\n", result);
}
---------------------------------
문제의 정답은 sum() 에서 result 가 스택영역에 있어 함수가 리턴되면서 해당 부분이 스택에서 지워지기 때문에 main 에서는 그 값을 참조할 수 없다. 가 정답이라고 하내요..
그런데 문제는 'int& sum(int a, int b)' 가 문법적으로 맞는것인가요?