Можно ли создать пустую структуру, а потом её заполнить внутри функции?

Да, в языке C++ вы можете создать пустую структуру и заполнить ее позже внутри функции. Для этого вам нужно объявить структуру с помощью ключевого слова "struct" и затем создать экземпляр структуры.

Пример объявления структуры:

struct Person {
    std::string name;
    int age;
};

Затем вы можете создать пустой экземпляр структуры следующим образом:

Person person;

Теперь, если вы хотите заполнить экземпляр структуры внутри функции, вам нужно получить доступ к его полям и присвоить им значения. Например, вы можете использовать операторы "." или "->" в зависимости от того, является ли экземпляр структуры объектом или указателем на объект.

Пример заполнения экземпляра структуры внутри функции:

void fillPersonData(Person& person) {
    person.name = "John";
    person.age = 25;
}

Здесь функция fillPersonData принимает ссылку на структуру Person и присваивает значения ее полям name и age.

Теперь вы можете вызвать эту функцию, чтобы заполнить экземпляр структуры:

int main() {
    Person person;
    fillPersonData(person);

    // Вывод значений полей экземпляра структуры
    std::cout << "Name: " << person.name << std::endl;
    std::cout << "Age: " << person.age << std::endl;

    return 0;
}

В результате программа выведет:

Name: John
Age: 25

Таким образом, в языке C++ вы можете создать пустую структуру и заполнить ее значениями внутри функции, используя доступ к полям структуры.