2010-01-31 11 views
3
int x[10],y[10]; 
x = y; 

我想到一个简单的黑客,这将使我能够得到这样的效果的。在C中,阵列这样的复制是不可能的。为什么?和最好的黑客

+0

我知道你已经标记了C但仍然确认... C++解决方案可以吗? – 2010-01-31 07:34:26

+5

犯错,为什么黑客攻击?为什么不理解如何在语言中编程? – Hogan 2010-01-31 07:44:06

+1

CAF回答了有关复制数据的最佳方式你的问题。为什么一个简单的任务是不可能的,也许你会发现http://stackoverflow.com/questions/2035066/type-of-an-array/2035255#2035255有用(这是我对类似问题的回答)。 – 2010-01-31 08:14:07

回答

19

你可以用它们在struct s到使用简单的赋值:

struct foo { int a[10]; } x, y; 
x = y; 

不过说真的,只是用memcpy

+0

GCC实际上发出一个调用'memcpy'的例子。 – 2010-01-31 08:11:22

11

您需要使用memcpy(或memmove)传输一块内存。

memcpy(x, y, sizeof(x)); 
1

使用memcpy(),或自行复制了用于(i = 0;我< 10; i ++在)环

相关问题