IT/솔루션) 난 정말C... 없다구요

24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 2

돔찌 2019. 4. 18. 18:19

<2016. 9. 26. 21:15>

24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 2

 

 

/*
다음 구조적으로 큰 문제가 있는 문장을 완성시켜라.
int * Invarr(void)
{
 int arr[3] = { 1,2,3 };
 return arr;
}
*/
#include<stdio.h>
#include<stdlib.h>
int arr[3] = {
	1,2,3
}
;
int Invarr(int arr[]) {
	return arr;
}
int main(void) {
	int * ptrarr = Invarr(arr);
	int i;
	for (i = 0; i < 3; i++) {
		printf("%d    ", ptrarr[i]);
	}
	system("pause");
	return 0;
}
// 배열을 return 하게되면 배열의 주소값을 리턴하게 된다. 반환하는 방식은 올바르나,
//배열이 함수 안에 선언이 되어 있으므로, 함수를 빠져나가면서 배열은 쓰레기값이 된다.
// 따라서 배열을 전역번수로 선언 해주는 방법 등이 있다.