Lifetime of pointers value

void loop() {

const char * const &local_string = "Will this string survive until second call to print_buffer()?";
  print_buffer();
  buffer[1] = (char*)local_string;
}

You cast away compiler errors at your peril.

Regardless of whether or not the const stuff works, I don't like the idea of saving, anywhere, a pointer to a local variable and using outside the scope of that variable.