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

Memory copy through pointers misses data sometimes

本文关键字:数据 复制 指针 内存      更新时间:2023-10-16

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

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

问题是,有时这段代码工作得很好,有时它会漏掉大块的数据。我不知道这里发生了什么。任何帮助都将不胜感激。

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