IDL의 포인터

여러개의 함수나 프로시저를 이용하여 하나의 프로그램을 만들다보면 포인터를 이용하는게 편한 경우들이 생깁니다. C언어 같은 경우에는 변수 앞에 &표시를 이용해서 포인터를 바로 얻을 수 있지만, IDL에서는 그런 일이 발생하지는 않죠. 그래도 IDL에서는 포인터를 이용할 수 있도록 ptr_new라는 함수를 지원하고 있습니다. 다음과 같이 쉽게 이용할 수 있네요.

보시면 A라는 10개 크기의 INT형 배열이 있는 것을 볼 수 있습니다.  그리고 b라는 포인터를 지정해 주었는데요. 여기서 중요한 점은 b가 가르키는 것이 a가  아니라는 점이지요. b라는 포인트변수는 a와 똑같은 모양의 변수가 b라는 주소에 있는 것이라고 생각하시면 됩니다. 그렇기 때문에, c라는 변수를 이용할 때 /no_copy의 값을 주었을 때 a가 사라지지만, c는 그대로 있는 것이지요!!!  또한 이렇게 포인터를 이용한 후에는 다음과 같이 정리도 가능합니다.

포인터가 지워진 관계로 b라는 주소에 있는 값을 부르려니 에러가 나는 것을 보실 수 있습니다.

IDL에서는 위와 같이 포인터를 이용이 가능한데요. 이것을 잘 이용하면 많은 도움이 되실 것 같습니다.