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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2012, 18:35   #1
ntec
Новичок
Джуниор
 
Регистрация: 17.11.2009
Сообщений: 1
Печаль Что за тип такой char***

Занимаюсь подключением dll библиотеки к дельфийском проекту. В h файле нашел такое интересное описание.

int MPI_Init(int *, char ***);
и
int MPI_Comm_spawn_multiple(int, char *[], char **[], int [], MPI_Info [], int, MPI_Comm, MPI_Comm *, int []);

Что значит "char ***" и "char **[]" ? И если можно как это написать в паскале.




Так же есть забавные конструкции вида
typedef int MPI_Group;
#define MPI_GROUP_EMPTY ((MPI_Group)0x48000000)
в которых неясно что такое 0x48000000.
ntec вне форума Ответить с цитированием
Старый 07.04.2012, 20:46   #2
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
По умолчанию

Код:
type
  TP3Char = ^^^ Char;
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Старый 07.04.2012, 20:57   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
int MPI_Init(int *, char ***);
Это синтаксис С++. Означает он то, что MPI_Init это функфия возвращающая нечто по имени int(целое со знаком) входные параметры int* - указатель на переменную. char*** - трёхмерный массив указателей на двоичные данные. Для чего его так создали? А хрен знает. Я бы сделал по другому, но ему виднее...
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 07.04.2012 в 21:00.
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.04.2012, 18:12   #4
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,152
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
char*** - трёхмерный массив указателей на двоичные данные.
Я, конечно, извиняюсь, ибо чайник, но может char*** это указатель на указатель на указатель?
Smogg вне форума Ответить с цитированием
Старый 12.04.2012, 18:19   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я, конечно, извиняюсь, ибо чайник, но может char*** это указатель на указатель на указатель?
а одно и тоже на самом деле.
ибо динамические массивы реализуются через указатель.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.04.2012, 18:57   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
это указатель на указатель на указатель?
А нахрена тебе это знать. Сказано ведь, три указателя на трёхмерный массив. Пользуйся и не думай, как реализовано.
Задумаешься, - попадёшь в психушку.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 13.04.2012, 10:11   #7
Asdprom
Форумчанин
 
Регистрация: 05.02.2011
Сообщений: 119
По умолчанию

Smitt&Wesson +1)

В микрософт и др. всегда куча непонятных заморочек одни только LPCWSTR и LPCSTR и BYTE и wchar_t и др. - все означает разные степени издевательства над старым добрым char.

Последний раз редактировалось Asdprom; 13.04.2012 в 10:13.
Asdprom вне форума Ответить с цитированием
Старый 13.04.2012, 10:27   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
В микрософт и др. всегда куча непонятных заморочек одни только LPCWSTR и LPCSTR и BYTE и wchar_t и др. - все означает разные степени издевательства над старым добрым char.
ошибаетесь.
wchar_t встроенный тип широких символов(согласно стандарту, но размер платформозависим)
LPCWSTR псевдоним к const wchar_t * и не более.
аналогично и LPCSTR псевдоним и BYTE Так же псевдоним.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2012, 12:45   #9
Asdprom
Форумчанин
 
Регистрация: 05.02.2011
Сообщений: 119
По умолчанию

ну хорошо, char , wchar_t - разное, но зачем другие то псевдонимы придумывать! Почему нельзя было оставить char и wchar_t ? Зачем эта куча псевдонимов - мне то и дело приходится менять настройки проекта, чтоб код работал нормально)
Asdprom вне форума Ответить с цитированием
Старый 13.04.2012, 19:51   #10
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 178
По умолчанию

Цитата:
Сообщение от Asdprom Посмотреть сообщение
ну хорошо, char , wchar_t - разное, но зачем другие то псевдонимы придумывать! Почему нельзя было оставить char и wchar_t ? Зачем эта куча псевдонимов - мне то и дело приходится менять настройки проекта, чтоб код работал нормально)
псевдонимы нужны для унификации кода, для подведения его под единый стандарт.
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с программой. Нельзя преобразовать тип set of char к char Lasso Помощь студентам 5 07.06.2011 12:03
две задачи на тип INTEGER и тип CHAR inspiron13 Помощь студентам 5 04.01.2011 00:17
две задачи на тип INTEGER и тип CHAR inspiron13 Паскаль, Turbo Pascal, PascalABC.NET 3 04.01.2011 00:08
Подскажите, что означает такой синтакс... aggro HTML и CSS 3 18.01.2010 22:18
Что а паук такой? Altera Свободное общение 37 30.06.2009 08:27