도대체 _movenext함수에서 콜by벨류가 발생하는지 모르겠다
연결리스트 구현해보는데,
자꾸 콜by벨류가 발생해서 잘 안된다;;;
내 생각으로는
현재 리스트가
1->2가 이렇게 있을때
tmpList는 현재 1을 가르치는 중이고(this니까)
_movenext()함수 들어와서, 그 함 수 안에서는 입력받은 tmpList변수가 2를 가르치거든?
근데 함수밖으로 나오는 순간 다시 1을 가르치고 있네;;
도대체 뭐가문제지
물론 그냥 단순하게
_move라는 함수 안쓰고
add내부에서
while(...)으로 돌려서 포인터 이동시키는거는 할줄 아니까
그렇게 하라고 하지는 말구
*
가르치기는 무슨
니가 원하는게 call by reference라고 왜 말을 못하니
당연이 포인터변수도 포인터 값을 저장하는 변순니까 콜 바이 벨류로 처리되지
매개변수에 * 붙였다고 다 콜 바이 포인터되서 값바꾼게 유지되고 그런게 아니다. 포인터 개념부터 제대로 잡아야겠네
이게 다 포인터는 call by reference입니다 라고 윤성우가 개뻥을 쳐서 그런건가?
무엇인가의 값을 외부에서 바꾸고 싶다면 무엇인가의 주소를 넘겨주어야 합니다.
글쓴이는 함수 인자 전달법이랑 유효범위 개념을 전혀 모르고있네
**
뭅넥스트함수를 static으로 만들어서 그런거 아니냐
ㄴ static하고는 상관없다 ㅇㅅㅇ
근데 저거 값 잘못들어가고 잘 들어가고랑 상관없이 잘 못 짠거 같은데? mylist *next; 이건 선언만해놓고 할당도 안해두잖아.. 실질적으로 리스트의 요소는 하나뿐이고 iSize랑 tData만 계속 바뀌게 되어있네 -_-;;
인자로 mylist* 를 받으면 같은 mylist를 가르키는 포인터 변수가 복사 되는거잖아. 복사된 포인터 변수에 다음 주소값을 대입 하는중.
mylist**로 받고 *tmpList = (*tmpList)->next 에 대입. 호출할때는 &tmpList; 로 인자 넘겨주면 됨.
미리 adt를 구현하고 만드시오. 그리고 call by reference 개념도 다시잡고
내칑그둘리능긔여운아긔공녕호이오이둘릐는초눈력내칭구
매개변수를 이중포인터로구현해야지 븅싄님아