将byte / int8数组元素复制到char数组

时间:2014-02-25 10:51:09

标签: c

我的程序顶部有一个基本上声明为BYTE数组的int8数组。

我想将此数组的内容复制到char数组中进行处理。我的字节数组中的内容如下:

byte_array[0] = "A";
byte_array[1] = "Q";
byte_array[2] = "W";
byte_array[3] = "E";
byte_array[4] = "R";
byte_array[5] = "T";
byte_array[6] = "Y";
byte_array[0] = "Z";
byte_array[1] = ".";
byte_array[2] = ".";
byte_array[3] = ".";

我的代码如下:

char char_array[];

for (j = 0; j < byte_array_size; j++) {
    char_array = &byte_array[j];

    printf("char_array[j]: %c - j: %u\n\r", char_array[j], j);
            }

注意:j和byte_array_size在我的程序顶部声明,并分别以0和10初始化。已经按照帖子开头提到的方式填充了byte_array。

上面的printf基本上打印出虚假字符而不是:

char_array[0] = "A";
char_array[1] = "Q";
char_array[2] = "W";
char_array[3] = "E";
char_array[4] = "R";
char_array[5] = "T";
char_array[6] = "Y";
char_array[0] = "Z";
char_array[1] = ".";
char_array[2] = ".";
char_array[3] = ".";

2 个答案:

答案 0 :(得分:3)

这是:

char char_array[char_array_size];

for (j = 0; j < byte_array_size && j < char_array_size; j++) {
    char_array[j] = byte_array[j];
}

答案 1 :(得分:0)

char_array = &byte_array[j]; 你正在复制地址, 要复制值char_array[j] = byte_array[j];

如果你不知道它的大小使用char_array,你也应该分配malloc 如果您确实知道它使用char char_array[YOUR_SIZE];