简而言之,我想知道数组是否有类似auto_ptr的类型.我知道我可以自己动手,我只是确保那里还没有东西.
我也知道矢量.但我不认为我可以使用它们.我正在使用几个Windows API/SDK,例如Windows Media SDK,Direct Show API,以便返回一些结构来调用一个带有指针和大小两次的函数.第一次传递NULL作为指针,以获取我必须分配的结构的大小,以便接收我正在寻找的数据.例如:
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;
Run Code Online (Sandbox Code Playgroud)
由于cbType通常返回大于sizeof(WM_MEDIA_TYPE),因为事实上有一个指向其中另一个结构的指针,我不能只分配WM_MEDIA_TYPE对象.那里有这样的东西吗?