@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 << "Совпадений не найдено"; }
        }
    }
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
В коде проблема: info не должна аыделять массив, а работать с переданным указателем.

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

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

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

Похожие вопросы