Russian Qt Forum

Программирование => С/C++ => Тема начата: ROM от Апрель 02, 2005, 00:14



Название: Как преобразовать переменнную класса CString в тип char
Отправлено: ROM от Апрель 02, 2005, 00:14
Нужо скопировать переменную  класса CString в переменную типа char и обратно или как хоть переменную типа char преобразоватьв типа класс CString????


Название: Как преобразовать переменнную класса CString в тип char
Отправлено: god3 от Апрель 04, 2005, 10:42
CString str;

str = "123456";

str.GetBuffer(0);


Название: Как преобразовать переменнную класса CString в тип char
Отправлено: Jkc от Апрель 13, 2005, 14:35
bool      PBX::clearCall(const string &dn, string &cp){
   
 const char * num = new char[cp.length ( )];
  num  = cp.c_str ( );


Название: Как преобразовать переменнную класса CString в тип char
Отправлено: god3 от Апрель 19, 2005, 12:39
А разве в этом случае ты не выделяешь память для текста, но командой num = cp.c_str ( ), просто сохраняешь указатель. Причём затираешь указатель под выделенную область памяти - утечка памяти!


Название: Как преобразовать переменнную класса CString в тип char
Отправлено: PROGrand от Июль 09, 2005, 21:19
Очевидно, у человека проблемы с const... Чтобы модифицировать sz нужно дублировать sz.

1.
CString str = "convert to char";
const char* sz = (LPCSTR)str; // это можно только читать.

char* sz_noconst = ::strdup((LPCSTR)str); это можно менять (вплоть до sz_noconst + ::strlen(sz_noconst) + 1).

::free(sz_noconst); // удалять придётся.

2.
const char* sz = "convert to CString";
CString str = sz;