Я создал в своей программе динамический массив struct, члены которой также являются строками. У меня есть некоторые сомнения относительно безопасного поведения при манипулировании строками внутри динамически распределяемой структуры. Могу ли я обновлять или объединять строки, как это делают обычные строковые переменные? Должен ли я беспокоиться о границах выделенной памяти структуры?
Чтобы сделать это немного яснее, у меня есть что-то вроде следующего псевдокод :
Сначала у меня есть объявление структуры
struct myStruct
{
...
int data1;
int data2;
std::string myString1;
std::string myString2;
...
}
Затем структура выделяется
mystruct testStruct*;
testStruct = new mystruct [MAX_DEPTH];
Строки инициализируются
for(int i=0; i<MAX_DEPTH; i++)
{
...
testStruct[i].myString1 = "";
testStruct[i].myString2 = "";
...
}
Во время программных циклов строкизначения назначаются и обновляются
...
testStruct[N].myString1 = "Some text";
...
testStruct[N].myString1 += "Some other text";
...
Здесь я не уверен, что правильно обработал выделенную память.
Являются ли эти назначения правильными и безопасными даже внутри динамически распределенного массива структуры? ? Я рискую нарушить границу динамически выделенной памяти для переменной myStruct?
Спасибо
РЕДАКТИРОВАТЬ: я исправил [i] неправильно помещен в psuedocode.