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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
qt 초급 오류: 헤더 파일에서 정의, cpp가 실행되지 않았습니다.문제 :-1: error: symbol(s) not found for architecture x86_64 :-1: error: linker command failed with exit code 1 (use -v to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.