【问题标题】:Copy byte/int8 array elements to char array将 byte/int8 数组元素复制到 char 数组
【发布时间】: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


【解决方案1】:

这里是:

char char_array[char_array_size];

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

【讨论】:

    【解决方案2】:

    char_array = &amp;byte_array[j]; 你在复制地址, 复制值你应该char_array[j] = byte_array[j];

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 2012-04-15
      • 2021-02-11
      • 2020-09-04
      • 1970-01-01
      • 2019-08-16
      相关资源
      最近更新 更多