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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 14:59   #1
Exeil
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 24
Вопрос Cannot convert 'char[16] *' to 'char *'

Всем привет, прошу помочь. У меня есть код, сама программа большая пишу самое основное:

Код:
typedef struct  {char massiv[10][16];
		...
		...}type_struktura;

void qs(char** c_arr,int first, int last)
{
	...
}

void main()
{
	type_struktura a;
	fread(&a, sizeof(type_struktura), 1, stream);
	qs(a.massiv, 0, sizeof(a.massiv)); //Cannot convert 'char[16] *' to 'char *'
}
и в нем происходит ошибка Cannot convert 'char[16] *' to 'char *' я понять не могу у меня massiv - указатель на массив строк и я передаю их как "char** c_arr" указатель на массив указателей на строк. Каким образом мне сделать из указателя на массив строк указатель на массив указателей на строк?
Exeil вне форума Ответить с цитированием
Старый 02.05.2011, 15:30   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
я понять не могу у меня massiv - указатель на массив строк
вот видите вы все сами сказали!
char** c_arr пройдет, если передается динамический массив
вам же нужно char (*p_arr)[16]
onewho вне форума Ответить с цитированием
Старый 02.05.2011, 15:44   #3
Exeil
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 24
По умолчанию

увы я точно не знаю как это сделать, много всего перепробовал
Exeil вне форума Ответить с цитированием
Старый 02.05.2011, 15:48   #4
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

STL использовать не подойдет?
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 02.05.2011, 15:58   #5
Exeil
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Сtrl Посмотреть сообщение
STL использовать не подойдет?
нет никак,

Код:
type_struktura a;
fread(&a, sizeof(type_struktura), 1, stream);

char **arr;
arr = new char *[sizeof(a.massiv)];
for(int i=0; i < sizeof(a.massiv); i++)
	arr[i] = new char[strlen(a.massiv[i])];

for(i = 0; i < sizeof(a.massiv); i++)
	for(j = 0; j < strlen(a.massiv[i]); j++)
	{
		arr[i][j] = a.massiv[i][j];
	}
qs(arr, 0, sizeof(a.massiv));

Последний раз редактировалось Exeil; 02.05.2011 в 21:39. Причина: не заметил лишний амперсент, изменил работает
Exeil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
преобразование типов char-const char student101 Помощь студентам 8 01.12.2010 20:45
error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR' . VS.NET PE kolob2000 Qt и кроссплатформенное программирование С/С++ 2 06.07.2010 18:51
Ошибка cannot convert from 'char *' to 'char [100]' Stellvertreter Общие вопросы C/C++ 5 30.05.2010 00:02
FastString::FastString(const char *psz) : m_psz(new char [strlen(psz) + 1]) { strcpy(m_psz, psz); } lebedun Общие вопросы C/C++ 3 27.03.2009 03:43
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17