Вернуть тип указателя на указатель
В 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-битной системе и т. д.).