memcpy是否适用于结构中的大型数组?

时间:2010-06-28 21:34:31

标签: arrays memcpy

我的结构中包含动态数组。我已经定义了其中两个结构。

我在第一个结构中填充数组,然后使用类似

的行

memcpy(R-> v,A-> v,A-> n * sizeof(double)

其中v是已动态分配的数组,n是条目数。

如果重要,R和A的类型相同。

问题是,这些值不是被复制到R中的原因。任何想法为什么?当我尝试在totalview中调试它时,memcpy会进入一个名为“very_huge_loop”的函数,但不会抛出任何异常或任何内容。

阵列长度约为188k。

由于

1 个答案:

答案 0 :(得分:1)

可能是内存对齐。有些架构不喜欢像double这样的多字节值来启动任意字节地址。分配数组内存时,您可能希望使用memalign()之类的函数而不是malloc()。如果您使用new double[n],那么它应该已经正确对齐。