I have a strange issue. I allocate char[] values in struct array, but they get lost: ------- The struct is this one :
typedef struct _Settings
{
    const char* str;
    uint val;
}Settings;
------- I create it like this :
int nn=10;
settings = new Settings[nn];
for (int i = 0; i < nn; i++) {
        string strr = "thisOneIs";
        strr.append(std::to_string(i));
        settings[i].str = strr.c_str();
        string teststr = settings[i].str;   //// (1)
        settings[i].val = i + 1;
}
..... at (1), I get the correct values.
But if I then call this (same place, right after the code above), the settings[i].str is empty:
for (int i = 0; i < nn; i++) {
        string teststr = settings[i].str;       ///// (2)
        std::cout << settings[i].str << "=" << settings[i].val << "\n";
    }
... at (2), I get empty.
Does anyone have a clue why? Thanks!