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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2013, 11:00   #1
Oktai
Новичок
Джуниор
 
Регистрация: 28.11.2011
Сообщений: 1
По умолчанию Вызов из структуры

Доброе утро! Возник вопрос по следующему поводу:
Есть структура:
Код:
struct {
char predmet[6][11];
char people[11][11];
int four_mark[21];
} jurnal;
Есть функция:
Код:
void menu_people(char* a,char **b, int* c)
В нее я посылаю параметры:
Код:
menu_people(jurnal.predmet[1],jurnal.people, jurnal.four_mark);
Подчеркивает jurnal.people и вот такая ошибка:
Ошибка 5 error C2664: menu_people: невозможно преобразовать параметр 2 из "char [11][11]" в "char **"
И такая : IntelliSense: аргумент типа "char (*)[11]" несовместим с параметром типа "char **"
В чем ошибка? Где не прав?

Последний раз редактировалось Oktai; 21.04.2013 в 11:01. Причина: .
Oktai вне форума Ответить с цитированием
Старый 21.04.2013, 15:19   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Сделайте привидение типов
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 22.04.2013, 00:57   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Oktai

Подчеркивает jurnal.people и вот такая ошибка:
Ошибка 5 error C2664: menu_people: невозможно преобразовать параметр 2 из "char [11][11]" в "char **"
И такая : IntelliSense: аргумент типа "char (*)[11]" несовместим с параметром типа "char **"
В чем ошибка? Где не прав?


Цитата:
Сделайте привидение типов
А теперь - правильный ответ :D

ошибка в том, что ты объявил двумерный массив, а функция принимает двойной уазатель. Что не одно и тоже.
решение - передавать в функцию правильный тип:

void zzz(char predmet[][11])
{
}

а ещё лучше - использовать класс std::string
Rififi вне форума Ответить с цитированием
Старый 22.04.2013, 01:43   #4
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Rififi, вы утверждаете, что привидение типов не будет работать правильно?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 22.04.2013, 02:29   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

двойный массивы фиксированного размера обычно хранят как одномерные с пересчетом индексов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.04.2013, 08:59   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Кстати, структура сама по себе весьма странная... если я правильно понимаю, есть 6 предметов и 11 студентов? А почему 21 four_mark, и вообще что это такое?
waleri вне форума Ответить с цитированием
Старый 22.04.2013, 10:36   #7
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Ezhik Kihze

Rififi, вы утверждаете, что привидение типов не будет работать правильно?

А вы попробуйте сами, потом расскажете что получилось :lol:

вот такой код

Код:
void fill(int** arr, size_t Cols, size_t Rows, int val)
{
	for (size_t i=0; i<Cols; i++)
	{
		for (size_t j=0; j<Rows; j++)
			arr[i][j] = val;
	}
}

int arr[10][20];
fill((int**)arr, 10, 20, 0);
Rififi вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. Лёнка Компоненты Delphi 1 23.04.2012 15:03
вызов callback Vistar Общие вопросы .NET 9 24.10.2010 14:49
вызов Iceman Софт 7 24.02.2008 07:30