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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> void* <-> char, преобразование 
:(
    Опции темы
slavenk
Дата 5.9.2011, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TheAthlete
*


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

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



а у меня наоборот, версия со строковым литералом не работает. говорит, что невозможно преобразовать const void* в void*
а с переменной работает.

могу посоветовать передавать адрес строки: func1(&str)
во-вторых, лучше использовать явное преобразование вместо преобразования в стиле С:

void func1(void *data) {
  //string mystr((char*)data);
  string mystr(static_cast<char*>(data));
  cout << mystr << endl;
}

И по идее, должно работать так:

#include <iostream>
#include <string>

using std::cout;
using std::endl;
using std::string;

void func1(void *data) {
  //string mystr((char*)data);
  string mystr(static_cast<char*>(data));
  cout << mystr << endl;
}

int main() {
  //func1("primer1");
  char str[100] = "primer2";
  func1(&str);
  return 0;
}

PM MAIL ICQ Skype   Вверх
volatile
Дата 6.9.2011, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

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



Цитата(slavenk @  5.9.2011,  21:52 Найти цитируемый пост)
могу посоветовать передавать адрес строки: func1(&str)

в данном случае func1(&str); и func1(str); являются синонимами.
в обоих случаях передается указатель на строку.

Цитата(slavenk @  5.9.2011,  21:52 Найти цитируемый пост)
во-вторых, лучше использовать явное преобразование вместо преобразования в стиле С:

а чем лучше-то?
Если вы имеете ввиду хороший стиль, то тут в принципе не может идти речи о стиле..
Это все равно что советовать бомжу, одевать фрак с бабочкой.  smile

А если писать действительно в хорошем стиле, тут не нужны приведения вовсе (ни в стиле С, ни в стиле С++) smile

Добавлено через 42 секунды
зы: да и код пробуйте иногда заключать в теги...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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