Форум программистов, компьютерный форум CyberForum.ru

Как возвратить одномерный массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ API функции для работы с окном http://www.cyberforum.ru/cpp-beginners/thread24928.html
Подскажите, пожалуйста, есть ли API функции в с++, с помощью которых можно закрывать, разворачивать, сворачивать, перемещать и т.п. окно ? Если есть, напишите их или дайте ссылку на источник.
C++ Принадлежность точки к отрезку. УВАЖАЕМЫЕ ЭКСПЕРТЫ ПОМОГИТЕ УЛУЧшИТЬ АЛГОРИТМ ДЛЯ ДАННОЙ ЗАДАЧИ.... Точки и отрезки (Время: 2 сек) Дано N отрезков на числовой прямой и M точек на этой же прямой. Для каждой из данных точек определите, скольким отрезкам она принадлежит. Точка x считается принадлежащей отрезку с концами a и b, если выполняется двойное неравенство min(a, b) <= x <= max(a, b). Входные данные Первая строка... http://www.cyberforum.ru/cpp-beginners/thread24910.html
Обьём целиндра + 10 r,h, значений и 10 выводов. C++
Здравствуйте все, прошу прощения если такая тему уже было но найти не могу. Суть в чём, Написать программу которая посчитала бы обьём целиндра И вы водила, его с помощью ФУНКЦИИ (я так понимаю передача данных методом копирования или по ссылке) Я то написал программу, но я меня не было тогда когда была лекция про эти методы, в книгах понять не могу как это делается, собвственно как вывести...
Создание матрицы 5*3 в С++ C++
Добрый день а может вечер, здрасте всем... Прошу помощь мне с задачей если не составит труда вот условие задачи 8.9 Результаты соревнований по прыжкам в длину представлены в виде матрицы 5х3 (5 спортсменов по 3 попытки у каждого). Указать, какой спортсмен и в какой попытке показал наилучший результат. Спасибо всем...
C++ Перегрузка оператора ++ http://www.cyberforum.ru/cpp-beginners/thread24823.html
вот простенькая прога: #include "stdafx.h" #include "iostream" using namespace std; class My{ public: My(){itsAge=0;}
C++ что означают эти 0x378 или 888 в языке C++? Привет. Объясните пожалуйста, что означают эти 0x378 или 888 в языке C++? Где можно взглянуть на таблицу этих адресов? Как их считать? Спасибо подробнее

Показать сообщение отдельно
YurA_280784
Заблокирован
04.03.2009, 11:16     Как возвратить одномерный массив
Короче почитал и удивился, столько слов о такой мелочи, что даже голова кругом идёт8)
Массив из функции можно вернуть несколькими способами
1 - В функцию передаётся указатель на исходный массив без
C++
1
const
,тогда чтобы прибавить 1 ко всем элементам следующего массивчика int x[] = {1,2,3,4,5};
можно написать функцию
C++
1
2
3
4
5
void mas_add(int n, int * x)
{
for(int i = 0; i < n; i++)
 x[i] += 1;
}
где n - число элементов массива, можно было б написать в самом теле фунцкции что int n = sizeof(x)/sizeof(x[0]); - тогда можно обойтись без входного параметра n(но это так отступление)

2 - Функция сама может вернуть указатель на массив (вообщем пишем функциию с таким же алгоритмом как и в способе 1

C++
1
2
3
4
5
6
7
void mas_add(int n, int * x)
{
int *ret = (int *)malloc(n*sizeof(int));
for(int i = 0; i < n; i++)
 ret[i] = x[i] + 1;
return ret;
}
Ну а впроге 1,2 выглядят следующим образом
C++
1
2
3
4
5
6
7
1 - й способ
int x[] = {1,2,3,4,5};
mas_add(5,x);
 
2 - й способ
int x[] = {1,2,3,4,5};
int * y = mas_add(5,x);
Считаю 1-й способ предпочтительнее т.к во 2 способе функция постоянно создаёт новый массив, поэтому можно засорить память если не выполнить отчиску. Короче 1-й способ неприменим лишь в том случае когда необходимо оставить исходный массив без изменений,вот. Думаю терь SZ тебе всё станет понятно....

Добавлено через 8 минут 55 секунд
Извиняюсь должен чуток внести коррективы, запарился малёхо...
2 - й способ
C++
1
2
3
4
5
6
7
int * mas_add(int n, int * x)
{
int *ret = (int *)malloc(n*sizeof(int));
for(int i = 0; i < n; i++) 
ret[i] = x[i] + 1;
return ret;
}
 
Текущее время: 18:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru