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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 21:14   #11
Asdprom
Форумчанин
 
Регистрация: 05.02.2011
Сообщений: 119
По умолчанию

Но почему char оставить - то нельзя?
Asdprom вне форума Ответить с цитированием
Старый 13.04.2012, 21:51   #12
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 177
По умолчанию

Цитата:
Сообщение от Asdprom Посмотреть сообщение
Но почему char оставить - то нельзя?
тип char никто не отменял
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Старый 13.04.2012, 22:14   #13
Asdprom
Форумчанин
 
Регистрация: 05.02.2011
Сообщений: 119
По умолчанию

но преобразования из char в LPCSTR требует явного определения типа.
Asdprom вне форума Ответить с цитированием
Старый 13.04.2012, 23:50   #14
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Сообщение от Asdprom Посмотреть сообщение
но преобразования из char в LPCSTR требует явного определения типа.
Приведите пример чтобы требовалось явное преобразование указателя на char к LPCSTR.
EUGY вне форума Ответить с цитированием
Старый 14.04.2012, 11:47   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Зачем эта куча псевдонимов - мне то и дело приходится менять настройки проекта, чтоб код работал нормально)
сколько пишу, ни разу не менял настройки проекта касательно Юникода.
Цитата:
но преобразования из char в LPCSTR требует явного определения типа.
жду примеры.
с описанием ошибок.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.04.2012, 21:54   #16
Asdprom
Форумчанин
 
Регистрация: 05.02.2011
Сообщений: 119
По умолчанию

CreateFile - не может преобразовать!
Asdprom вне форума Ответить с цитированием
Старый 14.04.2012, 21:57   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я прошу пример кода, конкретный.
а не название функции.

у меня вот все отлично работает
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.04.2012, 22:45   #18
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

char** var[] это просто удобная запись указателя третьего уровня. А поскольку под char[] обычно понимают строку, то char ** это, скажем так, указатель на матрицу строк. Так как каждый элемент первого уровня т.е. var[0] например будет указателем на массив (или массивом если угодно) строк. Еще раз.

var - char** []
*var - char * []
**var - char [] - строка
***var - char буква.

Также можно записать этот так:
var[0] - char* [] - первая строка матрицы
var[0][0] - char [] - первый элемент в первой строке матрицы
var[0][0][0] -char - первая буква в первом элементе первой строки матрицы

Можно также воспринимать такие штуки как трехмерный куб в котором выбирается нужный элемент, но боюсь, что когда дело дойдет до 4-мерных массиво, мозг свернется в трубочку от попытки представить выборку маленького гиперкубика из большого гиперкуба
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 19.04.2012, 16:53   #19
EC.cpp
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 30
Подмигивание Что такое <type>* * * * * *...

Char*** - на мой взгляд, здесь важно поэтапное представление (причем видеть это нужно строго поэтапно, иначе велика вероятность просто потерятся).

Попытаюсь объяснить как это может выглядеть поэтапно:
ур1: char* - здесь может содержаться буква или предложение или любой набор текстовой информации. Для конкретики - пусть здесь запоминается фамилия учащегося;
ур.2 * (char*) - это можно представить как список фамилий одного учебного класса;
ур.3 * (* (char*) ) - здесь подразумевается что классов в какой-то школе может быть много, а значит под этим может пониматься общий список фамилий всех учащихся всех классов конкретного учебного заведения.
ур.4 * ( *( * (char*) ) ) - это уже может быть полный список учащихся всех учебных заведений конкретного города или области
ур.5 * (* ( *( * (char*) ) ) ) - здесь далее может подразумеваться общий список фамилий учащихся конкретной страны.
ур. 6 * (* (* ( *( * (char*) ) ) ) ) - полный список фамилий всех учащихся на конкретной планете (Земля).
ур. 7 * ( * (* (* ( *( * (char*) ) ) ) ) ) - список фамилий всех учащихся в Солнечной системе.
ур. 8 И так далее.

В вашем случае вы имеете дело только с уровнем 3 из примера.
EC.cpp вне форума Ответить с цитированием
Старый 22.04.2012, 13:01   #20
SergeyCh
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 27
По умолчанию

>int MPI_Init(int *, char ***);

- declare MPI_Init as function (pointer to int, pointer to pointer to pointer to char) returning int
Для N-мерного динамически выделяемого массива, где N> 3, потребуется три или более уровней разыменования в C. (Uses for multiple levels of pointer dereferences?)

int MPI_Comm_spawn_multiple(int, char *[], char **[], int [], int, int []);

- declare MPI_Comm_spawn_multiple as function (int, array of pointer to char, array of pointer to pointer to char, array of int, int, array of int) returning int

Это С. Сомневаясь, проверяй здесь -
C gibberish ↔ English

>Так же есть забавные конструкции вида
typedef int MPI_Group;
#define MPI_GROUP_EMPTY ((MPI_Group)0x48000000)
в которых неясно что такое 0x48000000.


- это называется "magic numbers" (магические числа). Правило - избегай их в коде или комментируй.

Последний раз редактировалось SergeyCh; 22.04.2012 в 13:21.
SergeyCh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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