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

时间:2016-04-08 08:45:42

标签: c++ pointers memory copy memory-address

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

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

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

1 个答案:

答案 0 :(得分:0)

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