在我发现这个非常有用的问答之后:如何将数组的所有成员初始化为相同的值?,我开始想知道,如果我经常遇到的问题是如何在C
.
这些是我最感兴趣的一些案例:
- 相同类型到相同类型,具有相同大小(例如 char 到 char)
- 一种类型到另一种类型,大小相同(例如 const char 到 unit8)
- 较小的一个变成一个较大的(例如 test[7] 到 test[70])
我的上述方法是这样的 - 例如:
array1 = array2
memcpy(&array2,array1,sizeof(array1))
- 也
memcpy
可以通过元素进行 for 循环
我希望这里有人可以提供或知道在哪里可以找到不同数组交换例程的精炼示例集合。不是,我不能让它发挥自己的作用,只是,如果解决方案是可靠的,就会有这种持续的不安全感。
哦,我真的很讨厌那些 for 循环,单独分配每个元素。对我来说,使用它们的唯一原因是在执行交换之前需要进行一些额外的处理 - 例如首先增加转移的价值,或类似的东西。
如果这不适合 Q/A 风格,我会很高兴,如果有人可以确认或改进我的尝试,例如 2:
#define SIZEOF_ARRAY = 16;
uint8 array2[SIZEOF_ARRAY+1];
const char array1[SIZEOF_ARRAY+1] = {"test"};
memcpy(&array2,array1,sizeof(array1))