我有一个未签名的C ++字符缓冲区
unsigned char* pBuffer = new unsigned char [1024];
我想通过使用分配而不是memcpy-将
pBuffer
指针保存在新分配的缓冲区的前几个字节中*(unsigned char*) &pBuffer[0] = pBuffer;
我无法正确获取语法。正确执行此操作的语法有所帮助。
Visual Studio 2010
最佳答案
我不知道您为什么要这样做,但是我可以想到一些奇怪的原因,因此:
reinterpret_cast<unsigned char**>(pBuffer)[0] = pBuffer;
您希望编译器将指针重新解释为
unsigned char**
,并将pBuffer
的值存储在0索引插槽中。您说要索引具有多个pBuffer的“链接列表”。在这种情况下,您不应使用reinterpret_cast。代替:
struct node {
node* prev;
std::unique_ptr<node> next;
unsigned char buffer[1024];
node(node* prev_) : prev(prev_) {}
};
std::unique_ptr<node> list(new node(nullptr)); //tada
关于c++ - 复制指针值C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9688557/