Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2013, 08:51   #1
Rebelition
Пользователь
 
Аватар для Rebelition
 
Регистрация: 03.06.2011
Сообщений: 33
По умолчанию Вернуть указатель на массив из функции

Дан массив из 20 элементов, который заполняется в функции, причем заполнение можно прервать. Функция должна вернуть указатель на место, следующее за последним введенным элементом. Чтобы другие ф-и могли его использовать.
Код:
#include <iostream>
double *full_array(double [], int);

int main()
{

	using namespace std;
	const int full_size = 10;
	double ar[full_size];
	double *size;
	double size = *full_array(ar, full_size);
	cin.clear();
	cin.sync();
	cin.get();
	return 0;

}

double *full_array(double ar[], int full_size)
{

	using namespace std;
	int i = 0;
	cout << "Enter the element: ";
	while (cin >> ar[i] && i < full_size-1)
	{
	
		i++;
		cout << "Enter the element: ";
			
	}
	return ar+1;

}
Rebelition вне форума Ответить с цитированием
Старый 20.06.2013, 09:24   #2
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

Цитата:
return ar+1;
ar+1 - это адрес второго элемента в массиве

вот так думаю что правильно будет
Код:
return ar+i;
revizor вне форума Ответить с цитированием
Старый 25.06.2013, 00:40   #3
MoBLer
Пользователь
 
Аватар для MoBLer
 
Регистрация: 30.12.2010
Сообщений: 91
Сообщение

В чем проблемы то, если в ошибках то вот немного подправил.
Код:
#include <iostream>

double *full_array(double [], int);

int main()
{

       using namespace std;
	const int full_size = 10;
	double ar[full_size];
	double *size;
	size = full_array(ar, 5);//заполняем первые 5 элементов
	size = full_array(size, 5);//заполняем остальные 5 элементов
	cin.clear();
	cin.sync();
	for(int i=0;i<10;i++)
		cout<<ar[i]<<" ";
	cin.get();
	return 0;

}

double *full_array(double ar[], int full_size)
{

	using namespace std;
	int i = 0;
	cout << "Enter the element: ";
	while (cin >> ar[i] && i < full_size-1)
	{
	
		i++;
		cout << "Enter the element: ";
			
	}
	return ar+i+1;

}
Я тебе помог, добавь отзыв)))))
Статьи по программированию
MoBLer вне форума Ответить с цитированием
Старый 25.06.2013, 01:37   #4
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Не проще ли завести переменную current, которая будет хранить в себе количество проинициализированных элементов?
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу вернуть массив из функции alik98 Помощь студентам 2 27.02.2013 18:10
Список указателей(TList). Как 100%-о вернуть не nil, указатель. Человек_Борща Общие вопросы Delphi 16 12.01.2012 11:56
Создать массив в функции, через указатель. Как? TwiX Общие вопросы Delphi 10 01.04.2010 11:36
Вернуть из функции массив М@лышка Помощь студентам 0 07.01.2010 02:13
Можно ли вернуть динамический массив из функции? worldcentre Помощь студентам 2 06.12.2007 02:37