Вернуть тип указателя на указатель

В GigE SDK C++ спецификация отмечает определение GetDataPointer() следующим образом:

PvUInt8 * PvBuffer::GetDataPointer  (   )   
Get the buffer's data pointer. 
Const version.
Returns:
A pointer to the memory pointer. 

Я использовал эту функцию в моей программе следующим образом (см. Последнюю строку):

PvBuffer * lBuffer = new PvBuffer();
// Create the Data (buffers are created as images, GetImage() is valid on a fresh buffer)
lBuffer->GetImage()->Alloc( 1224, 1029, PvPixelMono8 );
PvUInt8 *lDataBuffer = lBuffer->GetDataPointer(); //use in actual code 

Вопрос о PvUInt8; Если посмотреть на определение, это тип данных в буфере или указатель, который всегда может быть 4 байта (на 32-битной машине) или 8 байтов (на 64-битной машине).

1 ответ

Из предоставленной информации, PvUInt8 представляется псевдонимом unsigned char (он же "байт"). Это означает, что PvUInt8 * это просто указатель байта. sizeof(PvUInt8) должно быть 1, а также sizeof(PvUInt8 *) должен иметь собственный размер указателя в среде выполнения (например, 4 в 32-битной системе, 8 в 64-битной системе и т. д.).

Другие вопросы по тегам