Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строка char** 
:(
    Опции темы
NiJazz
  Дата 8.12.2003, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Я хочу отправит строку из одного приложения в другое. Сначала решил проверить, можно ли отправлять не всю строку (то есть strlen(pWord) байтов), а только 4 байта, то есть указатель. Так как строка - это указатель на char, то я решил попробовать напрямую отправить 4 байта. И получил только первые 4 символа. Решил сделать так:

Код

char **pWord = (char**)malloc(100);
dwBytesToSend = 4;
WriteFile(
hPipe,
pWord,
dwBytesToSend,
&dwBytesWritten,
NULL);


А вот приём сообщения:
Код

ReadFile(
hPipe,
pWord,
dwBytesToRead,
&dwBytesRead,
NULL);

cout << *pWord << endl;


При таких раскладах выдаёт ошибку. Как быть?
PM MAIL   Вверх
NiJazz
Дата 8.12.2003, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Во втором приложении так же объявил и выделил память для pWord.
PM MAIL   Вверх
bel_nikita
Дата 9.12.2003, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



убери одну *.


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 9.12.2003, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



bel_nikita, откуда?
PM MAIL   Вверх
bel_nikita
Дата 9.12.2003, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



char *pWord = (char*)malloc(100);

Думаю так заработаетsmile.gif

Цитата
Сначала решил проверить, можно ли отправлять не всю строку (то есть strlen(pWord) байтов), а только 4 байта, то есть указатель.


Так ты данные хочешь записать или указатель на данные? Не совсем въехал.


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Mellorn
Дата 9.12.2003, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.12.2003

Репутация: 1
Всего: 1



А я не пойму следующего... ты сказал из одного приложения в другое? делаю вывод(читай догадываюсь)
что ты программишь по форточки(читай окна) .... какого тада спрашивается вы используете malloc!!!

Поясню... лучше , если не единственно правильно использовать new (если кодишь под дос прошу прощения)

соглашусь с bel_nikita... помоему * и впрям лишняя
PM MAIL   Вверх
NiJazz
Дата 10.12.2003, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Mellorn, пожно по-русски ещё раз для тупых?

Цитата
какого тада спрашивается вы используете malloc!!!


Да, лучше LocalAlloc...

PM MAIL   Вверх
Mellorn
Дата 11.12.2003, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 3.12.2003

Репутация: 1
Всего: 1



char * <string_name>=new char(<length>) length-длина строки =)

по моему так будет корректней =) это иницыирование
PM MAIL   Вверх
Hroft
Дата 15.12.2003, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Цитата

char * <string_name>=new char(<length>) length-длина строки =)
по моему так будет корректней =) это иницыирование

круто, невероятные познания в срр (кстати, operator new через тот же malloc реализуется)! вот только скобочки надо квадратные ставить - так, как ты написал, память выделится под один только char, инициализированный значением 10 (CR или LF, кажись smile.gif ). а не под строку длиной <length>.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1795 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.