Мой проф. попросил меня скопировать и вставить код, который она написала ниже, и он продолжал давать мне ошибки
Запустив ее программу, выведите 1 для любого значения.
Логически я понимаю, как функция должна возвращать адрес, и в основном она печатает его значение. Теоретически это.
Итак, вот что я попробовал:
1) Просто удалите оператор p = cube (& n) и замените на:
std::cout << "Cube of " << n << " is " << cube(&n) << std::endl;
Это сработало.
2) Чтобы устранить ошибку «локальной переменной», я сделал «result» глобальной переменной.
3) В кубе () я сделал:
int *cube(int *number)
{
int result = (*number) * (*number) * (*number);
int *newResult = &newResult;
return newResult;
}
... но он вывел 1 для любого целого числа.
Это пример кода, которым она поделилась.
#include <iostream>
int *cube(int *);
int main()
{
int n, *p;
std::cout << "Enter an int: ";
std::cin >> n;
p = cube(&n);
std::cout << "Cube of " << n << " is " << *p << std::endl;
return 0;
}
int *cube(int *number)
{
int result = (*number) * (*number) * (*number);
return &result;
}
По ее словам, вывод этой программы должен быть кубом введенного целого числа. Например, 3 в -> 27 в.
Заранее спасибо!