2013-07-30 28 views
0

試圖找出爲什麼我只有不到1%的時間將問題寫入記憶。就像從一個隨機線程一樣,它不能寫入。我想知道如果鑄件不穩定?將QString強制轉換爲char *不穩定?

char *str = (char*)q_str.toStdString().c_str(); 
memcpy(m_list + m_count + m_length, str, strlen(str)); 
m_count++; 

回答

4

toStdString()返回一個臨時值。該臨時文件在分號處被銷燬,此時str成爲懸掛指針。做成

string s = q_str.toStdString(); 
memcpy(m_list + m_count + m_length, s.c_str(), s.length());