W skrócie, zastanawiam się, czy istnieje typ auto_ptr jak dla tablic. Wiem, że mogłem rzucić własną, upewniam się tylko, że czegoś tam nie ma.auto_ptr dla tablic
Wiem również o wektorach. jednak nie sądzę, abym mógł z nich korzystać. Używam kilku interfejsów API Windows/SDK, takich jak Windows Media SDK, Direct Show API, które w celu odzyskania niektórych struktur wywołują funkcję, która dwukrotnie pobiera wskaźnik i rozmiar. Pierwszy raz przekazuję NULL jako wskaźnik, aby odzyskać rozmiar struktury, którą muszę przydzielić, aby otrzymać dane, których szukam. Na przykład:
CComQIPtr<IWMMediaProps> pProps(m_pStreamConfig);
DWORD cbType = 0;
WM_MEDIA_TYPE *pType = NULL;
hr = pProps->GetMediaType(NULL, &cbType);
CHECK_HR(hr);
pType = (WM_MEDIA_TYPE*)new BYTE[cbType]; // Would like to use auto_ptr instread
hr = pProps->GetMediaType(pType, &cbType);
CHECK_HR(hr);
// ... do some stuff
delete[] pType;
Od cbType zazwyczaj wraca większy niż sizeof (WM_MEDIA_TYPE) ze względu na fakt, to jest wskaźnik do innej struktury w nim, nie mogę po prostu przeznaczyć obiektów WM_MEDIA_TYPE. Czy jest coś takiego?
Tak. Wektory, a nie tablice. –
Czy wektory gwarantują ciągłe blokowanie pamięci? – heavyd
@Heavyd Tak - standard C++ to gwarantuje. –