2012-07-05 76 views
0

在所述GigE SDK C++,说明书指出GetDataPointer()的定义如下:一个指针的返回类型为指针

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

我在我的程序像这样使用该功能(PL见最后一行) :

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;看这个定义,这是Buffer中的数据类型还是指针的数据类型,它总是可以是4字节(在32位机器上)或8字节(在64位机器上)。

+0

I *认为文档试图说“指向内存缓冲区的指针”,即“指向指针的指针”是一个错字。 – molbdnilo 2012-07-05 11:14:06

+0

那么你的结论是什么? – gpuguy 2012-07-05 11:15:28

+0

PvUInt8是一个8位宽的无符号整数。 “Pv”中的“P”并不意味着“指针” - 它是一个SDK范围的前缀。该缓冲区包含“PvUInt8”。 – molbdnilo 2012-07-05 11:25:37

回答

1

从提供的信息中,PvUInt8看起来是unsigned char(又名“一个字节”)的别名。这意味着PvUInt8 *只是一个字节指针。 sizeof(PvUInt8)应该是1sizeof(PvUInt8 *)应该是执行环境中指针的原生大小(例如,32位系统上的4位,64位系统上的8位等)。

相关问题