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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 04:05   #1
MIKE11IPME
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 159
По умолчанию невозможно преобразовать параметр

имеется функция
Код:
void Jacobi (int N, double **A, double *F, double *X)
и
Код:
int main()
{
	int i,l,N=4;
	double A[4][4],F[4],X[4];
        ...
	Jacobi(N,A,F,X);
	...
}
и ошибка компилятора: Jacobi: невозможно преобразовать параметр 2 из "double [4][4]" в "double **"
преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Как исправить ? (с указателями слегка знаком , с функциями в плюсах пока полный ноль)
или мне надо изначально работать с массивом указателей ?
MIKE11IPME вне форума Ответить с цитированием
Старый 27.02.2013, 04:51   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
Как исправить ?
Цитата:
преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
(10 символов)
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 28.02.2013, 03:02   #3
MIKE11IPME
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 159
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
(10 символов)
но ведь это массив + он и так double тип имеет , вообще если быть честным не понимаю вот этого "**А" мои скромные познания дают понять лишь *А - указатель на определенный тип данных (и то в случае если указывать будем на переменную,а не на целый массив , еще что-то вспоминаю читал про массив указателей ... )
MIKE11IPME вне форума Ответить с цитированием
Старый 28.02.2013, 03:28   #4
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

double [4][4] - это массив
double ** - это указатель

И хотя, фактически, это легко преобразуемые вещи, но, как язык со "строгой типизаций", компилятор просит вас явно указать это преобразование, чтобы быть уверенным, что именно этого вы и хотели.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 28.02.2013, 03:36   #5
MIKE11IPME
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 159
По умолчанию

Цитата:
Сообщение от Ezhik Kihze Посмотреть сообщение
double [4][4] - это массив
double ** - это указатель

И хотя, фактически, это легко преобразуемые вещи, но, как язык со "строгой типизаций", компилятор просит вас явно указать это преобразование, чтобы быть уверенным, что именно этого вы и хотели.
Эмм и как это осуществить ? Создать массив указателей дабл *ф ,а потом его как вводные данные отправить в функцию ?
И вот вопрос тип данных **А и тип данных *А - в чем разница ? или это указатель на указатель ?(тоже что-то в памяти всплывает)
MIKE11IPME вне форума Ответить с цитированием
Старый 28.02.2013, 03:38   #6
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
Эмм и как это осуществить ?
Цитата:
преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Погуглите (почитайте) про приведение типов, а?..
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в Pascal ABC.Net ошибка:"невозможно явно преобразовать тип integer к System.random" ameks94 Паскаль, Turbo Pascal, PascalABC.NET 3 23.12.2012 02:04
невозможно преобразовать char[] в char Slavik3 Общие вопросы C/C++ 3 17.10.2012 19:05
невозможно преобразовать 'const char' в 'char triest Помощь студентам 1 10.12.2011 13:41
Невозможно удалить FullVenic Безопасность, Шифрование 14 07.02.2011 09:35
Невозможно преобразовать параметр Nikita1987 Общие вопросы C/C++ 2 30.06.2010 17:13