On line 10 you initialize text::address using text::addr (declared on line 14), but text::addr hasn't been constructed yet, so the memory for that future object is in an undefined state. You're basically doing this:
1 2 3
char mem[sizeof(std::string)];
//mem is uninitialized
std::string s = *(std::string *)mem;