2011-05-29 34 views

回答

2

您必须循环或使用库调用。

一个选项是memcpy(kk, k, sizeof(k));。为此,您必须#include <string.h>

+4

我建议不要使用sizeof(k),而应该使用sizeof(kk)来代替 - 这可以确保无论如何,在k值稍后调整大小的情况下,您将永远不会溢出为kk分配的内存边界。从数组中找到缺失的数据比内存覆盖更容易进行调试。 – Phil 2011-05-29 00:44:32

+0

@Phil:同意。我使用了sizeof(k),因为它显示了“复制数组k”的意图,但是您的建议非常真实。 – 2011-05-29 00:50:05

+0

memcpy或strcpy? – jdl 2011-05-29 00:54:33

1

是的。数组的行为不像C中的基本数据类型。您必须遍历数组并分配每个值。你不能只将一个数组分配给另一个数组(特别是因为kk实际上是一个int指针)。不过硬:

int i; 
for (i = 0; i < 4; i++) 
    kk[i] = k[i]; 
+0

谢谢你的帮助。 – jdl 2011-05-29 00:55:44

0

没有良好的旧C数组的副本分配。所以是的,你必须循环并复制每个元素。

+0

谢谢你的帮助。 – jdl 2011-05-29 00:57:33

+0

不客气。 – 2011-05-29 01:18:23