Помогите найти касяк(С++)

С++ Си

double fun(double *Y, int n, int m, int k)
{
double j = 0;
int x,i=0;
Y = (double*)calloc(k,sizeof(double));
//Проверка
while(i<k)
{
cout<<*(Y+i)<<endl;
i++;
}
for(int i = 0;i<k;i++)
{
cout << "X = ";
cin >> x;
*(Y+i) = fun1(n,x)+fun2(m,x);
cout<<*(Y+i)<<endl;
}
return j;
}
int main() {
double r = 0;
double *Y;
double t[5];
Y=&t[0];
int k,n,m;
setlocale(0,"Rus");
cout << "\nВводим n: ";
cin >> n;
cout << "Вводим m: ";
cin >> m;
cout << "Вводим k: ";
cin >> k;
r = fun(Y,n,m,k);
for(int g = k;g>0;g--)
{
// в этом участке и сообственно косяк выводит ересь страшную, как исправить
cout<<*(Y+(g-1))<<endl;
}
cout << endl<<r;
getch();
return 0;
}
Ответы:
В функции fun первый аргумент передаётся по значению. То есть вы передали значение указателя одно, внутри функции его поменяли, а обратно значение не вернули. Фактически вы вывели содержимое массива t. Либо передавайте указатель по ссылке, вместо


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.