關於QString轉換為char*的一點小細節

pamxy發表於2013-07-31

首先,怎樣從QString轉換為char*,可以利用QString::toLocal8BIt()返回一個QByteArray,然後通過QByteArray::data()返回一個char*指標型別,如:

QString pathStr = "abc";
QByteArray pathByteArr = pathStr.toLocal8Bit();
char* pathChar = pathByteArr.data();

這樣就能成功的將QString型別轉換為char*型別,但有時候我們會想更快捷一點,如:

QString pathStr = "abc";

char* pathChar = pathStr.toLocal8Bit().data();

但我發現這樣是不行的,執行後,pathChar仍然是沒有有效資料,我也不大清楚緣由,但先放著,主要是提醒一下自己和大家,不要因為貪圖快捷而導致了一個小bug的出現,而且清楚這個bug是需要時間的。同時希望有牛人來解答。。。

相關文章