通过指针进行的内存复制有时会丢失数据

Memory copy through pointers misses data sometimes

我正在编写一个简单的 C++ 程序来将数据从缓冲区复制到专用内存位置。每当缓冲区更新时,我 运行 以下循环:

tempPtr= (u64 *) buffer;
for (j=0; j<buffer_length; j++){
    destinationPtr[i+j]=buffer[j];
}
i=i+j;

问题是,有时这段代码工作正常,有时它会丢失数据块。我不知道这里发生了什么。任何帮助将不胜感激。

刚发完问题,我发现问题不是复制内存,而是可变缓冲区大小...缓冲区大小不是要复制的数据的倍数。这导致跳过了一些块。