qt QByteArray::데이터 () 디스코드

3448 단어 QT
편의를 위해
QString qstr(" ");
char *cstr = qstr.toLocal8Bit().data();   

위에서 얻은 문자열 포인터가 가리키는 메모리가 방출되었습니다. QString::to Local8 Bit () 로 구성된 QByte Array 대상은 값을 부여한 후에 분석되었습니다. 이 대상의 데이터 포인터를 얻었지만, 대상 분석에 따라 약간 수정되었기 때문에 위험이 존재합니다.
QString qstr(" ");
QByteArray qbarr = qstr.toLocal8Bit();  // qbarr 
char *cstr = qbarr.data();     // qbarr ,cstr 

올바른 방법은
QString qstr(" ");
char cstr[64] ={0};
memcpy(cstr, qstr.toLocal8Bit().data(), qstr.toLocal8Bit().size());  // ,QByteArray::size() , cstr 0, qstr.toLocal8Bit().size()+1

좋은 웹페이지 즐겨찾기