IMHO the last two lines of loop() should be exchanged:
void loop() {
char local_string[] = "Will this string survive until second call to print_buffer()?";
buffer[1] = local_string;
print_buffer();
}
IMHO the last two lines of loop() should be exchanged:
void loop() {
char local_string[] = "Will this string survive until second call to print_buffer()?";
buffer[1] = local_string;
print_buffer();
}