首页 > 解决方案 > 将字符数组地址存储在新数组中

问题描述

我在 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++carduinoesp32arduino-esp32

解决方案


这是正确的:

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
  • 您需要删除&sbitmap_1587等已经是地址
  • 你需要const char* char_addr[],因为你有const数组bitmap_...

推荐阅读