我正在编写一个简单的c ++程序,用于将数据从缓冲区复制到专用内存位置。每当缓冲区更新时,我都会运行以下循环:
tempPtr= (u64 *) buffer;
for (j=0; j<buffer_length; j++){
destinationPtr[i+j]=buffer[j];
}
i=i+j;
问题是,有时这段代码工作正常,有时它会丢失数据块。我不知道这里发生了什么。任何帮助将不胜感激。
答案 0 :(得分:0)
在发布问题之后,我发现问题不是复制内存,而是缓冲区大小可变...缓冲区大小不是要复制的数据的倍数。这导致了一些块的跳过。