@marlaaa

Как использовать переменную из одной функции в другой, не запуская при этом работу второй функции?

Есть ли возможность взять значение переменной заданное в одной функции в другую. Я не хочу при объявлении detal в main запускать info Например:
void info(buy* stu, int n) {
    cout << "Введите количество покупателей:";
    cin >> n;
    stu = new buy[n];
    for (int i = 0; i < n; i++) {
        cout << "Введите имя:" << endl;
        cin >> stu[i].name;
        cout << "Введите фамилию:" << endl;
        cin >> stu[i].surname;
    }
}
//значение переменной n нужно в этой функции:
void detal(string f, buy d) {
        int n = 1;
        buy* stu = new buy[n];
        info(stu, n);
        cout << "Введите значение:" << endl;
        cin >> f;

        for (int i = 0; i < n; i++) {
            if (f == stu[i].d) {
                cout << stu[i].d;
            }
            else { cout << "Совпадений не найдено"; }
        }
    }
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
В коде проблема: info не должна аыделять массив, а работать с переданным указателем.

Вы там выделяете новую память и заполняете ее, но снаружи это нигде не видно.

Или можно наоборот - выделять массив в info, но тогда надо не выделять его в detal и передавать указатель на указатель, что бы info могла изменять stu. Или лучше, пусть info массив возвращает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы