다음 프로그램을 고려해 보겠습니다.
#include <iostream> using namespace std; int* Array() { int a[100]; a[0] = 7; a[1] = 6; a[2] = 4; a[3] = 3; return a; } int main() { int* p = Array(); cout << p[0] << " " << p[1]<<" "<<p[2]<<" "<<p[3]; return 0; }
이 프로그램에서는 다음과 같은 경고를 받습니다.
출력
In function 'int* Array()': warning: address of local variable 'a' returned [-Wreturn-local-addr] int a[100];
지역 변수의 주소를 반환하지만 함수 호출이 끝난 후 메모리에 지역 변수가 없을 수 있으므로 불가능합니다. 따라서 C++는 배열을 반환하는 함수를 지원하지 않습니다.