| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > правильное преобразование |
| Автор: kuvshinka 30.11.2012, 21:29 | ||
есть вектор значений некоего типа (мне все равно какого именно - char*, StringList... ) или просто StringList...в него я считываю через объект QSettings некие данные и дальше мне их надо передать в некую функцию в качестве параметра типа char*:
подскажите как правильно привести Data к типу char*... |
| Автор: bsa 30.11.2012, 22:18 |
| kuvshinka, во-первых, Data у тебя - это указатель. во-вторых, метод at() вернет тебе ссылку на первый элемент массива. в-третьих, судя по тому, что ты добавляешь в Data объекты типа QString, то метод at вернет указатель на QString, который так просто не конвертируется в char*. Т.е. чтобы получить массив char'ов, тебе необходимо: 1. создать временную переменную типа QByteArray и присвоить ей результат выполнения метода toLatin1() (или toUtf8()) класса QString, примененных к Data->at(0) 2. создать массив чаров (выделить под него память), равный объему переменной, сделанной в п. 1 3. скопировать содержимое временной переменной в массив. n. освободить память, выделенную в п. 2 P.S.: кстати, память под Data выделить не забыл? P.P.S: рекомендую следовать одному стилю оформления кода. В частности, первый символ переменной должен быть маленьким. |