Esp8266 communication with arduino

  char a[input_buffer] = {0};

You know that input_buffer is NOT an input buffer, right? So, it is a completely meaningless name for an array index. All that that will do is lead to confusion later on.