2012-02-27 2 views
1

잘 나는 개인 속성과 카운터C++ 이중 포인터 배열 목록

private: 
    TPerson **pListe; 
    int counter; 

TPerson이 사실상 TList라는 클래스가 내가 전에 만든 또 다른 클래스 확인해야합니다. 카운터는 배열의 위치를 ​​알아야합니다. 그래서 내가

Add(TPerson *p), Delete(TPerson *p) 

같은 방법이 목록을 작성해야합니다 이제 내 문제는 다음과 같습니다 어떻게 이중 포인터 목록에 그 TPerson 객체를 추가 할 수 있습니까?

난 내

void TListe::Add(TPerson &p) {...} 

방법을했습니다.

내가 그렇게 tryed : pListe [counter] = & p;

예를 들어, 그것은 작동하지 않습니다 .. 누군가가 내가 어떻게 더블 포인터 배열을 사용하여 목록으로 사용할 필요가 있는지 설명 할 수 있습니까?

인사

+0

당신은 단순히''표준 : vector''를 사용할 수 있습니까? 더 적은 번거 로움처럼 들리며 상황에서 권장되는 접근 방식입니다.''counter ''가 pListe 내 마지막으로 할당 된 셀을 벗어나는 경우 어떻게 처리하는지 잘 모르겠습니다. – foxx1337

+0

숙제 인 경우, [숙제] 태그를 추가해야합니다. 그러면 다른 사람들이 어떻게 대답해야하는지 (즉각적인 문제를 해결하기보다는 설명하십시오) 알 수 있습니다. 숙제가 아니라면, 표준 라이브러리에 이미 존재하기 때문에 동적 배열 데이터 구조를 처음부터 작성하려고해서는 안됩니다. – jalf

+0

어떤 오류가 있습니까? 당신이 지을 때인가요? 런타임 충돌? 배열을 할당 했습니까? –

답변

2

난 당신의 코드 예제에 의해 혼란 스러워요, *pListeTPerson 객체의 배열의 첫 번째 요소에 대한 포인터를 개최 할 예정, 아니면 그냥 TPerson에 대한 포인터이다?. 난 당신이 첫 번째 사람에 대한 포인터의 배열을 할당 할 필요가 있다고 생각 :

pListe = new TPerson* [size]; 

그때 당신이 할 수 있습니다

Add(TPerson* p) { 
pListe[some_counter_to_past_the_last_element] = p; 
... 
} 

Add(TPerson& p) { 
pListe[some_counter_to_past_the_last_element] = &p; 
... 
} 
+0

아 .. 고맙습니다 .. 그 작품. 내 실수는 내가 "pListe [some_counter_to_past_the_last_element] = * p;" – darkdog