|
안녕하세요...
struct ListKind {
List* ListMain;
List* ListFirst;
List* ListLast;
}
라고 선언해서
ListKind *ClientList;
ClientList = new ListKind;
로 선언을 했거덩요..
List 클래스는..
class List
{
public:
String IPAddress;
List* next;
List* previous;
void __fastcall Remove(List* First);
}
라고 해 놨는데...
ClientList->ListMain->Remove(ClientList->ListFirst);
로 넘겨서..... Remove함수내에서 ClientList->ListFirst값을 저장해야 되요...
void Remove(List* First)
{
if(previous==NULL) First=next;
else previous->next = next;
}
라는 식으로 링크드 리스트의 Remove문을 구현했어요.. 리스트의 2~끝까지는 잘 삭제가 되는데....
처음 부분에 에러가 나는군요.. ClientList->First에 이 값이 제대로 저장이 된다면 첫번째도
제대로 삭제된다는건 다른 예제를 통해서 직접 확인했구요.. 아마 안되는건...
Remove함수에서 First라는 변수가 그 값이 제대로 저장이 되지 않아서 그런거 같군요...
질문의 요점은... ClientList->ListMain에서 Remove함수를 호출하면.. Remove함수에서 this로 엑세스가 가능한데....
이 윗단. ClientList를 나타낼려면 어떻게 해야 하나요? 가르쳐 주세요....
ClientList->ListFirst값을 직접 넘겨서 포인터로 저장을 해본 소스가 위의 방법대로 한건데...
이렇게 하니깐 저장이 안되더라구요.. 꼭 좀 도와주세요...
|