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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2009, 21:30   #1
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию указатель на массив

Код:
#include <iostream>
#include <fstream>
using namespace std;
int vvod(int* f)
{
	ifstream input_file("in.txt");
	int i=0;
	while(!input_file.eof())
	{
		input_file>>*(f+i);
		cout<<*(f+i)<<" ";
	}
	return 0;
}
int main()
{
	int const n=10;
	int a[n];
	vvod(&a); //тут дает ошибку
	cout<<endl;
	int max=a[0];
	for(int i=0; i<n; i++)
		cout<<a[i]<<" ";
	system("pause");
}
Как передать массив в функцыю?!
Cpluser вне форума Ответить с цитированием
Старый 23.09.2009, 21:39   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

имя массива - есть его адрес( a == &a[0] );
Код:
vvod(a);
netrino вне форума Ответить с цитированием
Старый 23.09.2009, 21:40   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Имя массива само по себе указатель на его первый элемент. Пишите так:
Код:
vvod(a);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.09.2009, 21:41   #4
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Так работает но выводит белеберду!
Cpluser вне форума Ответить с цитированием
Старый 23.09.2009, 21:43   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Потому что i не меняете.
Исправьте так:
Код:
cout<<*(f+i++)<<" ";
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.09.2009, 21:43   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

так а в функции vvod вы ведь i не увеличиваете, потому значения из файла каждый раз записываются в первый элемент массива, не трогая остальные )
netrino вне форума Ответить с цитированием
Старый 23.09.2009, 21:46   #7
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Вот балда точно!)СПАСИБО!
Cpluser вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатель в квадрате Golovastik Общие вопросы C/C++ 2 10.09.2009 18:54
(!)указатель на указатель(!) (C)stalin(Cpp) Общие вопросы C/C++ 0 07.06.2009 15:32
Указатель. Pointer AHTuKiLLeR Общие вопросы Delphi 6 27.05.2009 13:41
Указатель n на m CESHNIK Общие вопросы C/C++ 7 07.03.2008 23:35
Не создается указатель на vector! mahsus Общие вопросы C/C++ 7 11.01.2008 16:07