함수에서 포인터를 넘겨주는데..
글쓴이: lacovnk / 작성시간: 월, 2004/05/03 - 10:45오후
STATUS BMTree::_insert(node *node_target, const dtype data_x, dtype &data_y, node *&node_q);
이런 녀석이 있군요 -_-;
node는 typedef된 struct고요.
대체 *&node_q...라는 변수는 어떤걸 의미하나요?
사용은 다음과 같이 되는데..
node *node_new, *node_final; dtype data_x_new, data_k_final; STATUS result; blablabla... /* * recursive call */ result = _insert(node_target->nodes[i], data_x, data_x_new, node_new);
node_new가 node*형이니, 결국은 포인터를 넘겨주는게 아닌가 싶은데..
받는 함수에서 왜 *&라고 하는지 모르겠네요. 저걸 *로 고치면 컴파일 에러는 안나지만, segmentation fault가 나고...
그리고 저걸 C로 바꾸려는데, c에서는 계속 parse에러가 나더군요.
무슨 의미인지요? 으음.
Forums:
혹시 포인터 스왑 함수 만들어 보신적 있으세요 ^^[code:1]
혹시 포인터 스왑 함수 만들어 보신적 있으세요 ^^
C++, 그리고 C++....
죽어도 C++
c++에서는.. 레퍼런스라는게 있습니다..&가 바로 레퍼런
c++에서는.. 레퍼런스라는게 있습니다..
&가 바로 레퍼런스를 나타내는 것이구요..
c에는 존재하지 않습니다..
이런 코드를 돌려보심 대강 포인터랑 비슷하면서 사용법이
좀 다르단 걸 알 수 있을겁니다 ;)
결과는 3-3-3 이라고 나옵니다 :)
하튼 ** 이렇게 더블리포인터로 바꿔주시고.. 그걸 사용하는 부분들의 앞에
*을 붙여줘야겠죠 -_-;;
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
댓글 달기