我的程序顶部有一个基本上声明为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] = ".";
答案 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];