我在C++中相当新,并且试图理解内存操作是如何工作的。我习惯于Java和Python,并没有真正接触过这个。如何从内存缓冲区中读取C++
我正在研究具有以下结构的项目,这对我来说并不合适。
typedef struct
{
size_t size;
char *data;
} data_buffer;
该结构基本上充当缓冲器,具有指针存储在所述缓冲器和所述缓冲器的大小内的数据,以允许程序知道如何大的缓冲液是从它读出时。
的程序如何使用缓存的例子:
data_buffer buffer = {0};
//Manipulate data here so it contains pertinent information
CFile oFile;
oFile.Write(buffer.data, buffer.size);
程序大多采用第三方代码读取缓存中找到的数据,所以我无法找到的如何做到这一点的例子。我的主要问题是如何只读取指向字符和大小的指针,如何读取缓冲区的内容?但是,我也想了解这实际上是如何工作的。根据我的理解,内存被写入,并且有一个指向开始位置和内存大小的指针,所以我应该能够遍历内存位置,从内存中抓取每个字符并将其标记到我选择的任何结构上使用,就像一个CString或一个字符串。但是,我不明白如何遍历内存。有人能帮助我更好地理解这一点吗?谢谢。
使用'std :: vector'或'std :: array'而不是裸数组,指针,'new'和'delete'。 –
我正在研究很老的代码,所以很多已经写好的东西我都不能重做。我只是想了解这实际上是如何起缓冲作用的。 – fudge22it
它不是一个缓冲区,它是一个缓冲区句柄,用于确定实际缓冲区的地址和大小。顺便说一句。这是比C++代码更多的C代码(实际上是C代码和MFC代码的混合) – MikeMB