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 하게되면 배열의 주소값을 리턴하게 된다. 반환하는 방식은 올바르나,
//배열이 함수 안에 선언이 되어 있으므로, 함수를 빠져나가면서 배열은 쓰레기값이 된다.
// 따라서 배열을 전역번수로 선언 해주는 방법 등이 있다.