Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Возврат из функции и её вызов в С++

#cpp #массивы #функции #указатели


Имею 2 функции (различий меж ними нет, практически)
Правильно ли я выполняю из них возврат? И как правильно их нужно вызывать в main
(между массивами, возвращаемых обеими функциями, нужно будет провести математические
операции)? 

int summa(int x[], int y[], int nRow)
{
        int *sum = new int[nRow];
        for (int i=0; i


Ответы

Ответ 1



Если вы хотите вернуть в первом случае sum[0], а во втором - dob[0], то правильно. После выполнения return функция прекращает работу - так что из всего цикла return будет выполнено только на первой итерации. Но если вы хотите вернуть выделенную для нового массива память - то объявляйте функцию как возвращающую int*, и просто возвращайте return sum. Потом не забудьте освободить выделенную память. int * summa(int x[], int y[], int nRow) { int *sum = new int[nRow]; for (int i=0; i

Ответ 2



Так как вам уже ответили, я лишь добавлю, что проще и лучше работать в таких случаях с std::valarray. Он позволит обойтись без функции и лишных забот. int x[] = { 1, 2, 3}; int y[] = { 4, 5, 6}; std::valarray vx(x, 3), vy(y, 3), result = vx + vy; for (int i : result) cout << i << endl;

Комментариев нет:

Отправить комментарий