18得票2回答
C中的反向memcpy

我正在处理音频数据。我想倒放播放示例文件。该数据以无符号整数形式存储并紧密打包。是否有一种调用 memcpy 的方法可以按相反的顺序进行复制。例如,如果我在数组中存储了1,2,3,4,那么我可以调用memcpy来“神奇地”将它们反转,使我得到4,3,2,1。

18得票3回答
使用memcpy从数组中复制一定范围的元素

假设我们有两个数组:double *matrix=new double[100]; double *array=new double[10]; 我们想要使用memcpy,将矩阵matrix[80:89]中的10个元素复制到数组array中。 有什么快速的解决方案吗?

16得票7回答
memcpy() 比 memmove() 更快的真正重要情况是什么?

memcpy()和 memmove()之间的关键区别在于当源和目标重叠时, memmove()可以正常工作。当缓冲区不重叠时,memcpy()更可取,因为它可能更快。 令我困扰的是这个可能。这是微小优化还是有真正显着的例子表明 memcpy()更快,以至于我们真的需要使用 memcpy()...

16得票1回答
有一个标准的、跨度版本的memcpy吗?

我有一个长度为10的列向量A和一个10x10的矩阵B。 B的内存存储方式是按列主序(column major)的。 我想用A向量覆盖B矩阵的第一行。 显然,我可以执行以下操作:for ( int i=0; i < 10; i++ ) { B[0 + 10 * i] = A[i]...

15得票6回答
在C语言中,最快的反交错操作是什么?

我有一个指向字节数组mixed的指针,其中包含两个不同数组array1和array2的交错字节。假设mixed看起来像这样: a1b2c3d4... 我需要做的是将字节解交错,得到 array1 = abcd... 和 array2 = 1234...。我提前知道mixed的长度,并且arr...

15得票2回答
copy_to_user和memcpy区别

我一直被告知(在书籍和教程中)在从内核空间复制数据到用户空间时,应该使用copy_to_user()而使用memcpy()会给系统带来问题。最近我不小心使用了memcpy(),但它完全正常地工作,没有任何问题。为什么我们应该使用copy_to_user而不是memcpy() 我的测试代码(内...

15得票6回答
C语言中的'memdup'函数是什么?

在C语言中,你可以使用strdup函数来简洁地分配一个缓冲区并将一个字符串复制到其中。但就我所知,对于一般的内存操作,没有类似的函数。例如,我无法像这样说: TBDstruct myStruct *foo = malloc(sizeof(struct myStruct)); fill_myS...

15得票1回答
MSVC:无效的memcpy优化?

考虑以下代码:void MemMove8(void* dst, void* src) { char tmp[8]; memcpy(tmp, src, 8); memcpy(dst, tmp, 8); } 使用 /O2 选项编译的 MSVC(16.7.1 版)x86 架构...

14得票3回答
使用memcpy()函数将无符号字符数组中的字节放入std::string中

我有一个std::string变量。我需要将一些来自无符号字符数组的字节放入其中。我知道第一个字节和长度。 我可以使用std::string::assign函数。我已经使用过了。 但是我想用memcpy函数以正确的方式解决这个问题。std::string newString; memcpy...

14得票1回答
如何使用movntdqa避免缓存污染?

我正在尝试编写一个不会将源内存加载到CPU缓存中的memcpy函数,目的是避免缓存污染。下面的memcpy函数可以工作,但会像标准memcpy一样污染缓存。我正在使用P8700处理器和Visual C++ 2008 Express,在Intel VTune中查看CPU缓存使用情况。void m...