我的基本任务是将缓冲区数组的一个子集放入另一个缓冲区数组中:
char buffer[max_len];
unit8 *pDestBuffer;
我使用了这段代码,因为我想留在 ANSI-C 中:
memcpy(pDestBuffer, buffer, 4);
但是 - 一定有问题,因为我没有得到我期望的结果。因为,当我调试缓冲区时,我看到了数组的所有插槽- 当我使用 pDestBuffer 执行此操作时,我只得到一个项目 - 但是我可以更改它,例如memset(pDestBuffer,1,4)
pDestBuffer 是结构的一部分,除了上面的定义之外,唯一对它的引用是以下几行:
requiredMemory = sizeof(Structure) + bufferSize;
pStructure = (Structure *)HostMalloc(requiredMemory);
pStructure->pDestBuffer = ((uint8 *)pStructure)+sizeof(Sturcture);
我知道,这可能是一项相当基本的任务,我自己也在做这个,但是如果有“最佳实践”或者你知道解决方案,请与我分享。
作为一个转折点,我真的很想知道,是否有一种改进的方法,使用 boost-libraries,无论如何我都会使用它来解决其他问题。