【发布时间】:2014-02-25 10:51:09
【问题描述】:
我有一个 int8 数组,它在我的程序顶部基本上声明为 BYTE 数组。
我想把这个数组的内容复制到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] = ".";
【问题讨论】:
-
char 字面量应该是“A”而不是“A”。同上。
-
检查你是否正确启动了你的字符或者你只是将指针的 ls 字节存储到随机字符串
标签: c