興味深いバグを見つけよう:const QString&
パラメータを渡してconst QString&
に格納されたデータへのポインタconst char*
を取得すると、ポインタが不正なデータを指している(一部の文字はI関数に送る)。なぜconst QString&paramがデータを返す悪いconst char *ポインタを返す
LogbookNote LBHasher::makePropsFromPseudoElement(const QString& id)
{
LogbookNote rv;
if (m_ctx->currentTrim) {
const char* charId = id.toLatin1().data();
...
qDebug() << charId;
}
とコードを呼び出す:あなたはメソッドIDを呼び出すには、言及することができたよう
LogbookNote LBHasher::makePropsByNameConvention(QString id)
{
LogbookNote g;
if (id.startsWith("_ctx_")) {
g = makePropsFromPseudoElement(id);
...
}
は、QString
としてQString
オブジェクトの、すなわち全体のコピーをしています。したがって、const QString&
は、強い(破損していない、一時的なオブジェクトを削除するなど)参照になります。
なぜこのような現象が発生しましたか?
Btw ... '' 'qDebug()<< qPrintable(id)' '' –
おそらくこの質問のタイトルを修正する必要がありますか? – AlexanderVX