연결 리스트에서 검색과 추가에 관해 질문하고 싶은게 있습니다.
미련곰팅이
이 부분이 링크드리스트에서 검색하는 부분인데요.
제가 보기에 이 소스가 틀린점이 없다고 생각하는데 개념상으로도 작동도 제대로 잘 될것 같거든요?
bool _searchList(List *pList, ListNode *pPre, ListNode *pLoc, int data)
{
for(pPre = NULL, pLoc = pList-head; pLoc != NULL; pPre = pLoc, pLoc = pLoc-next)
{
if(pLoc-data == data) // data was found
return TRUE;
else if(pLoc-data data)
break;
}
return FALSE;
}
그런데 이 소스를 이런식으로 선언부를 더블포인터로 고치고 그 외의 부분도 포인터로 고쳐야한다더군요;
왜 그런지 잘 모르겠네요;
bool _searchList(List *pList, ListNode **ppPre, ListNode **ppLoc, int data)
{
for(*ppPre = NULL, *ppLoc = pList-head; *ppLoc != NULL; *ppPre = *ppLoc, *ppLoc = (*ppLoc)-next)
{
if((*ppLoc)-data == data) // data was found
return TRUE;
else if((*ppLoc)-data data)
break;
}
return FALSE;
}
왜 그렇죠?;;
첫번째 소스가 틀린 이유를 잘 모르겠네요;
도와주세요 ㅠㅠ
-
멱부리
이거 풀소스는 못구하나요 ㅠㅠ
-
설아
아! 마지막 비유에서 확 느낌이 오네요!! 감사합니다.. 아 그렇군요. ㅎㅎ
-
너에게
void func(int x) {
x =10;
}
위 함수가 함수를 호출하는 곳에 있는 변수에 아무런 영향을 미치지 못 한다는 것은 아시겠죠.
void func(char* ptr) {
ptr = (char*)malloc(10);
}
int main() {
char* pointer;
func(pointer);
return 0;
}
이것도 func()는 pointer에 아무런 영향을 끼치지 못 합니다.
func(pointer)를 호출함으로써 pointer