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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 11:57   #1
firephenix
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 89
По умолчанию Передача указателя массива в фунцию.

Я использую visual studio 2005. Нужно ввести данные в два массива с помощью фунции "Vvod" , но при компиляции выскакивает:
error C2061: syntax error : identifier 'g'
error C2065: 'g' : undeclared identifier
error C2660: 'Vvod' : function does not take 2 arguments
Помогите пожалуйста найти где ошибка.

Код:
#include "stdafx.h"
#include <fstream>
using namespace std;

ifstream in("input.txt");
ofstream out("output.txt");

void Vvod(int *kg[], *g[][50]) 
{
	int t, c=0;
	in >> t;
	while (t!=-1) {
		while (t!=-2) {
			kg[c]++; g[c,kg[c]]=t; in >> t;   
		}
		c++;
		in >> t;
	}	
}

int main()
{
	int kg[50], g[50][50];
	Vvod(kg, g);
}
firephenix вне форума Ответить с цитированием
Старый 06.07.2011, 12:16   #2
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Цитата:
void Vvod(int *kg[], *g[][50])
ты пытаешься передать указатель на безразмерный одномерный массив и указатель на двумерный массив.
Нужно передать просто указатель на первый элемент массива (для одномерного ) и указатель на указатель для двумерного
Код:
void Vvod(int *kg,int **g)
И в аргументах функции тип данных должен ставиться перед каждым аргументом
Hemul вне форума Ответить с цитированием
Старый 06.07.2011, 12:29   #3
firephenix
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 89
По умолчанию

Спасибо, но указатели я всё таки решил убрать (в книге Шилдта "Полный справочник по C++" написано что если убрать размерность массива, то при работе с ним, будет неправильно программа с ним работать, т.е. элемент g[15][15] она будет не правильно определять). А моя ошибка в том что я не определил тип массива g.
firephenix вне форума Ответить с цитированием
Старый 06.07.2011, 16:14   #4
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от firephenix Посмотреть сообщение
Я использую visual studio 2005. Нужно ввести данные в два массива с помощью фунции "Vvod" , но при компиляции выскакивает:
error C2061: syntax error : identifier 'g'
error C2065: 'g' : undeclared identifier
error C2660: 'Vvod' : function does not take 2 arguments
Помогите пожалуйста найти где ошибка.

Код:
#include "stdafx.h"
#include <fstream>
using namespace std;

ifstream in("input.txt");
ofstream out("output.txt");

void Vvod(int *kg[], *g[][50]) 
{
	int t, c=0;
	in >> t;
	while (t!=-1) {
		while (t!=-2) {
			kg[c]++; g[c,kg[c]]=t; in >> t;   
		}
		c++;
		in >> t;
	}	
}

int main()
{
	int kg[50], g[50][50];
	Vvod(kg, g);
}

Я могу вам сказать, на что ругается ваш компилятор. у вас в объявлении (и одновременнов опеределении) вашей функции

Код:
void Vvod(int *kg[], *g[][50])
при объявлении второго параметра пропущен его тип! То есть должно быть

Код:
void Vvod(int *kg[], int *g[][50])
Заметили разницу?
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 09.07.2011, 06:07   #5
nibir
Пользователь
 
Регистрация: 05.07.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от firephenix Посмотреть сообщение
Спасибо, но указатели я всё таки решил убрать (в книге Шилдта "Полный справочник по C++" написано что если убрать размерность массива, то при работе с ним, будет неправильно программа с ним работать, т.е. элемент g[15][15] она будет не правильно определять). А моя ошибка в том что я не определил тип массива g.
О! То что нужно. Моя тема соседняя с таким же названием , там у меня были пляски с бубном только от того же. Можете ссылку на книгу дать, если есть в электронном виде? Или страницу и издание, если в бумажном виде читали.
nibir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача указателя на объект CodeNOT Общие вопросы C/C++ 7 06.01.2011 20:01
Передача указателя по цепочке (Си) mutabor Общие вопросы C/C++ 3 29.05.2010 16:29
Передача указателя из Си++ в dll на delphi VladimirFF Общие вопросы C/C++ 0 22.02.2010 19:56
Передача указателя на массив в функцию loser Общие вопросы C/C++ 2 19.02.2010 19:41
передача указателя в функцию arturka Помощь студентам 3 06.07.2008 00:25