【问题标题】:Store char arrays address in new array将字符数组地址存储在新数组中
【发布时间】:2021-09-25 13:48:15
【问题描述】:

我在 Arduino 程序中有一个包含的文件。 MCU是ESP32。

包含的文件是:

const char bitmap_1587[] PROGMEM = {248,254,254,230,241,231,247,199};
const char bitmap_1604[] PROGMEM = {249,254,254,254,0,191};
const char bitmap_1575[] PROGMEM = {7};
const char* char_addr[] = {&bitmap_1587,&bitmap_1604,&bitmap_1575};

当我编译代码时,返回此错误:

无法在初始化中将 'const char (*)[6] 转换为 'char*'

无法在初始化中将 'const char (*)[6]' 转换为 'char*'

无法在初始化中将 'const char (*)[1]' 转换为 'char*'

请帮助我。如何将 char 数组地址存储在另一个数组中。

【问题讨论】:

  • 签名字符溢出时的未定义行为。

标签: c++ c arduino esp32 arduino-esp32


【解决方案1】:

这是正确的:

const unsigned char bitmap_1587[] PROGMEM = { 248,254,254,230,241,231,247,199 };
const unsigned char bitmap_1604[] PROGMEM = { 249,254,254,254,0,191 };
const unsigned char bitmap_1575[] PROGMEM = { 7 };
const unsigned char* char_addr[] = { bitmap_1587,bitmap_1604,bitmap_1575,bitmap_1605,bitmap_32,bitmap_97,bitmap_98,bitmap_99,bitmap_1777,bitmap_1778,bitmap_1779 };
  • 你需要unsigned char,因为你的值> 127
  • 你需要删除&s、bitmap_1587等已经是地址
  • 您需要const char* char_addr[],因为您有const 用于bitmap_... 数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多