c - 如何复制动态分配的结构数组?

标签 c struct memcpy dynamically-generated

我一直在努力解决这个问题。我在 stackoverflow 和其他地方找到的是:

memcpy(&a, &b, sizeof(b));

但对我来说,那行不通。所以我想,我会分享对我有用的东西,而不会出现任何意外行为。

最佳答案

假设您有:

#define N 42
struct struct_name *a = malloc(sizeof *a * N);  // allocate N objects
struct struct_name *b = malloc(sizeof *b * N);  // allocate N objects

那么复制结构对象数组的正确 memcpy 调用是:

memcpy(a, b, sizeof *a * N);

关于c - 如何复制动态分配的结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34098764/

相关文章:

c - 如何定义包含指向自身的指针的 typedef 结构?

c++ - memcpy 与 startIndex?

c - 在 char ** 缓冲区上使用 memcpy()

C++ memcpy 返回值

c++ - 为什么 malloc(0) 的返回值是实现定义的?

c - 在 C 中用大括号定义一个指针?

c - C 中的指针与类型转换

python - 使用cython将.py程序转换为C语言

c++ - 具有预处理器分支实现的结构是否违反了 ODR?

C++ 为什么结构/类不会在 namespace 发生冲突时与变量和函数发生冲突?