Приведение от 'char*' к 'char' теряет точность

Здесь немного нуб. Я пытаюсь использовать номер датчика (с плавающей запятой) в своей теме mqtt, но, похоже, не могу понять это правильно. Любая помощь будет оценена по достоинству. Продолжайте получать эту ошибку (приведение от 'char*' к 'char' теряет точность)

      char buffer2[5];


       dtostrf(sensor.sensor_no, 4, 2, buffer2);
     char* buffer4 = mqtt_topic + char(buffer2);

  dtostrf(sensor.dht22_t,0, 0, buffer);
     client.publish(buffer4, buffer); //Название темы

, 👍0

Обсуждение

Вы не можете добавлять такие строки в C. Создайте новый пустой буфер, затем используйте strcpy() и strcat(), чтобы заполнить его данными., @Majenko


1 ответ


Лучший ответ:

1

Складывая строки вместе, вы фактически складываете адреса в памяти, где находятся эти строки.

Вместо этого вам нужно создать новый пустой буфер и заполнить его содержимым других строк.

char buffer4[32]; // <-- Достаточно места для обеих строк и символа NULL

strcpy(buffer4, mqtt_topic);  // Копируем первую строку
strcat(buffer4, buffer2); // объединяем вторую строку
,

Ааа. Большое спасибо, @Pieter Janse van Rensburg