Ayuda con esp8266 y mqtt(solucionado)

Hola, la cosa es que quiero tener una placa esp8266 subscrita a dos tópicos en un servidor MQTT, esta de miedo esto, ya no logro que rule, lo de risa es que paralelamente tengo otra placa subscrita a 4 tópicos y todo como la seda, pero esta ni atrás ni adelante.
El error que me muestra es que a pesar de estar escuchando un tópico x, en pantalla me muestra alternadamente los payloads de todos los tópicos a los que esta subscritos.
Aquí les dejo el código de ejemplo:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

WiFiClient espClient;
PubSubClient client(espClient);

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET  1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


const char* wifi_ssid = "ssid";
const char* wifi_password = "password";

const char* mqtt_server = "x.x.x.x";
const int mqtt_port = 1883;
const char* mqtt_uid = "sw_cuarto_T1";
const char* mqtt_user = "user";
const char* mqtt_pass = "password";

char* temp_cuarto, temp_ext;

void setup_wifi() {//Conectar a la red wifi
  delay(200);
  WiFi.setPhyMode(WIFI_PHY_MODE_11G);
  WiFi.mode(WIFI_STA);
  WiFi.begin(wifi_ssid, wifi_password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(200);
  }
}

void reconnect() {//Conectar al servidor mqtt
  while (!client.connected()) {
    if (client.connect(mqtt_uid, mqtt_user, mqtt_pass )) {
      client.subscribe("casa/micuarto/temp");
      client.subscribe("casa/exterior/temp");
    } else {
      delay(200);
    }
  }
}

void callback(char* topic, byte* payload, unsigned int length) {
  payload[length] = '\0';
  String strTopic = String((char*)topic);
  if (strTopic == "casa/micuarto/temp") {   /////Aquí está capturando solo un tópico
    temp_cuarto = (char*)payload;
  }
}

void setup() {
  Wire.begin(0, 2);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  delay(100);
  setup_wifi();
  client.setServer(mqtt_server, mqtt_port);
  client.setCallback(callback);
  delay(1000);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0, 10);
  display.print(temp_cuarto);  //Aquí solo le pido que muestre el resultado de la captura del tópico 
                                        //pero no hay manera me muestra los dos valores temp_cuarto y 
                                        //temp_ext
  display.display();
  delay(1000);
}

pues nada ya tengo la vista agotada, estoy por cambiar la esp8266, por probar, lo jodido es que tengo otra rulando perfect subscrita a 4 tópicos.

bueno ya con un poco de reposo+google encontre una solución que en este caso funcionó

//modifique el tipo de variables char* a int
int temp_cuarto, temp_ext;
..
..
//el callback quedo así
void callback(char* topic, byte* payload, unsigned int length) {
  payload[length] = '\0';
  String strTopic = String((char*)topic);
  if (strcmp(topic, "casa/micuarto/tem") == 0) {
    temp_cuarto = atoi((char*)payload);
  }
  if (strcmp(topic, "casa/exterior/tmp") == 0) {
    temp_ext = atoi((char*)payload);
  }
}

si es la mejor opción no lo se, al menos me está funcionando perfectamente