배열포인터1 [ C언어 ] 지역변수의 값을 반환 = 無의미 #include int* clean() { int arr[2]; arr[0] = 100; arr[1] = 200; int* p = arr; return p; } int main(void) { int* arr = clean(); printf("arr[0] : %d\n", arr[0]); printf("arr[1] : %d\n", arr[1]); return 0; } 위 코드와 왼쪽 구조를 보면 메인함수에서 포인터변수 arr에 사용자지정함수인 clean의 반환값인 지역변수 p를 넣는다. 이 프로그램을 실행하면 arr[0]값은 100으로 나오지만, arr[1]값은 200이 나오지 못하고 쓰레기값이 나온다. 이 이유는 clean함수가 종료되고 p값을 반환한 후에 clean함수에게 할당된 메모리는 비활성화되며, .. 2019. 7. 18. 이전 1 다음