crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QString to char or *char
greh
  опции профиля:
сообщение 6.3.2010, 17:37
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 23.11.2009
Пользователь №: 1252

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток. Помогите решить проблему.
Гугл помог не до конца:

CODE
QString test="501";
char* value=new char[100];

char* sometext=test.toAscii().data();
value=sometext;
ui->label->setText(QString(value));


в label записывается 0.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 6.3.2010, 19:57
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Хм, повторил код, результат для меня не ожиданный. Изменил его так:
Было:
char* sometext=test.toAscii().data();

стало:
QByteArray ar = test.toAscii();
char* sometext=ar.data();
всё стало путём.

Надо будет об этом подумать, но потом:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 6.3.2010, 22:52
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 6.3.2010, 19:57) *
Надо будет об этом подумать, но потом:)

Все уже было обдумано на prog.org. :)
Нельзя сохранять указатель на временный объект.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 6.3.2010, 23:55
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Точно также как с следующим кодом:


QString test_string("My name is Alexander.");
const char* result = test_string.toStdString().c_str();

// Result will be next: empty string: result = ""


// But this code
QString test_string("My name is Alexander.");
std::string temp(test_string.toStdString());
conts char* result = temp.c_str();

// Result will be expected: result = "My name is Alexander."

Вот так вот.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.12.2024, 14:15