Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays memcpy不';我似乎没有复制正确的数据_Arrays_Pointers_Struct_Memcpy - Fatal编程技术网

Arrays memcpy不';我似乎没有复制正确的数据

Arrays memcpy不';我似乎没有复制正确的数据,arrays,pointers,struct,memcpy,Arrays,Pointers,Struct,Memcpy,我正在尝试将ipv6地址的字符串从一个变量复制到另一个变量中,但我得到了错误的值,我有: #include <stdio.h> #include <string.h> typedef unsigned char bcm_ip6_t[16]; int main (void){ typedef struct { bcm_ip6_t IPv6addr; }mytype_t; bcm_ip6_t outarr; /****

我正在尝试将ipv6地址的字符串从一个变量复制到另一个变量中,但我得到了错误的值,我有:

#include <stdio.h>
#include <string.h>

typedef unsigned char bcm_ip6_t[16];

int main (void){

typedef struct {
        bcm_ip6_t IPv6addr;
        }mytype_t;

        bcm_ip6_t outarr;

/****************/

        mytype_t myvar[64];

        strcpy(outarr,"001122334455667788");

        printf("outarr %s\n",outarr);

        memcpy(myvar[0].IPv6addr, outarr, 16);

        printf("0x%x TEST0\n0x%x TEST1\n", myvar[0].IPv6addr[0], myvar[0].IPv6addr[1]);

return 0;
}
但我看到了:

outarr 001122334455667788
0x30 TEST0
0x30 TEST1
这是为什么?我如何解决

谢谢,
Ron

您正在打印字符的ASCII值,而不是地址字节的二进制值。

您将字符串复制到无符号字符数组中

然后打印出无符号字符数组的十六进制值

字符“0”由十六进制值0x30表示-这就是您看到它两次的原因

outarr 001122334455667788
0x30 TEST0
0x30 TEST1