내가 시험을 위해 공부하고 시험 시험 그들이 포인터 - 투 - 포인터 객체를 사용하여 동적를 만들기의 요구 사항을 넣어ptr-to-ptr 배열 사용? 이 같은의 사용과 설명은 무엇
int capacity;
int** number;
this->number = new int*[this->capacity];
? : 그것으로부터 배열. 두 가지 클래스가 있습니다. 월렛 & 월렛 키퍼.
private:
Wallet** wallets;
int capacity;
int size;
/*other stuff below this*/
그리고 생성자 : 그들은 WalletKeeper의 헤더 파일에 이런 짓을 솔루션에
Wallet * wallets = new Wallet[capacity];
:
WalletKeeper::WalletKeeper(int capacity)
{
this->capacity = capacity;
this->size = 0;
this->wallets = new Wallet*[this->capacity];
this->initiate();
}
는이 같은 기본 동적 배열을 이해 즉,이 월렛 배열이있는 메모리의 위치를 가리키는 포인터를 만들면 해당 메모리 슬롯의 내용을 변경할 수 있습니다. 하지만 포인터 배열에 대한 포인터를 만드는 이유는 무엇입니까? 그게 무슨 용도예요? 나는이 글을 읽을 때문에
지갑 자체의 어떤 배열이 없다, 나는 그렇지 않으면 이해 한 것 : The correct way to initialize a dynamic pointer to a multidimensional array?
교수는 속히까지 휴가에 있습니다.
왜 당신은 이제까지 다른 배열을 포함 할 수 있습니다 배열의 배열을 만들 것? 예를 들어, 행렬은 배열의 배열로 표현 될 수 있습니다 (각 행에 대한 숫자의 배열, 전체 행렬은 단지 행의 배열입니다). – ForceBru
나는 대답하기 위해 노력하고 있습니다.하지만 그 전에는 교수님이 아직도 이런 식으로 C++을 가르치는 것이 얼마나 소름 끼치는가를 표현하고 싶습니다. 그들은 단지'std :: vector'또는'std :: vector > '객체를 사용하도록 가르쳐 줬어야했는데,이 객체는 오류가 발생하기 쉽고 적합하지 않은 객체보다 무한히 바람직합니다. 실용적인 애플리케이션 코드. –
Xirema
Wallet * 배열입니다. 이것은 "자연스러운"현대 C++가 아니며 컨테이너 클래스를 사용하여 수행해야하며 일반적으로 메모리의 원시 할당은 가능하면 피해야합니다. – crashmstr