Нет причин думать, что этого не произойдет.
Вы создаете объект (массив), а затем он выходит из области видимости (когда цикл заканчивается).Теперь его место в памяти свободно для чего-то другого.
Как это происходит (чистый шанс), ваш следующий объект (другой массив) получил тот же адрес.В следующий раз все может быть иначе.Неважно!
Когда вы переезжаете в дом, вам все равно, кто в него переходит?Может быть, он лежит пустым в течение нескольких лет.Возможно, он лежит пустым, пока не будет снесен, чтобы освободить место для ряда магазинов.Может быть, его сразу подхватила прекрасная семья, которая перекрасила его и превратила в дворец смеха. Но тебя там уже нет , так что в любом случае это не могло иметь для тебя никакого значения.Вы ушли.Вы переехали в другой дом.
Не обращайте на это внимания.Ваша программа не работает, потому что вы храните висячие указатели на переменные, которые выходят из области видимости.Не делай этого.Вместо этого используйте std::vector<std::string>
.
Обратитесь к своей книге за дополнительной информацией о сложностях "сырых" массивов в стиле C.