поясните "Вот если вы можете эту структуруот одного экземпляра test_t передовать другому", не совсем понимаю
test_t test1, test2;
test1.set(test2.data);
test1.set(test2.get())
, если data_t - это что-то внешнее по отношению к test_t (например, у вас класс окна и у него есть обработчик события. Вам может захотеться передать обработчик события от одного класса другому.)
Но массив можно изначально завести на максимальное количество элементов. Или использовать какой-нибудь нормальный массив, вроде std::vector в C++, который за счет немного большего потребления памяти позволяет добавлять новые элементы за константное время, даже с учетом переаллокации.