Могу ли я инициализировать строку с NULL в C - PullRequest
0 голосов
/ 31 мая 2019

У меня дисплей 128х64 пикселей.Текущее изображение на дисплее сохраняется в

uint8_t bufferOLED[(HEIGHT * WIDTH / 8)+1]; // uint8_t bufferOLED[1025];

Если я загружаю bufferOLED с помощью strcpy и печатаю для отображения, все работает нормально.

Теперь я хочу инициализировать bufferOLED некоторым логотипом, который будет отображаться призагрузка приложения.

uint8_t bufferOLED[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //1
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //2
  ...
  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, //49
  0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, //50
  ...
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //100
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //101
  0x00, 0x00, 0x00, 0x00                                      //102
}

Логотип печатается нормально, но после того, как я загружаю bufferOLED с другим содержимым и печатаю для отображения, изображение на дисплее повреждено.

При записи на дисплей я просто отправляюbufferOLED с некоторыми командами для OLED:

for(int i=0; i<1024; i+=16) twiPrint(OLED, 0x40, bufferOLED+i, 16); //twiPrint(uint8_t twiAddress, uint8_t twiCommand, uint8_t *twiTransmitData, uint8_t twiTransmitDataLen)

Я знаю, что для завершения строки используется символ NULL.Так допускается ли инициализация с использованием комбинации символов NULL и NULL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...