gpt4 book ai didi

c - memcpy 是否会正确复制使用 mkl_malloc 分配的数组?

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:06 26 4
gpt4 key购买 nike

我正在使用 mkl_malloc 分配一个数组,对齐方式为 64,我需要复制它。但我不明白对齐是如何工作的。 mkl_malloc 是否只是在末尾添加填充,以便数组的总大小是 64 字节的倍数?还是数组元素之间也会有填充?

像下面的例子这样的代码是将整个 a 复制到 b 中,还是只复制其中的一部分?

#include <stdio.h>
#include <mkl.h>

int main() {
double *a = mkl_malloc(10 * sizeof(double), 64);

// is this enough memory to include a?
double *b = malloc(10 * sizeof(double));

// will this copy all of a?
memcpy(b, a, 10 * sizeof(double));

mkl_free(a);
free(b);
return 0;
}

最佳答案

您的示例 memcpy(b, a, 10 * sizeof(double)); 将正常工作。

对齐适用于起始地址,而不是保留内存块的大小。

关于c - memcpy 是否会正确复制使用 mkl_malloc 分配的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45331632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com