QString testclass::myfunc(int i)
{
QString result;
switch (i) {
case 1: result = "one"; break;
case 2: result = "two"; break;
}
return result;
}
< /code>
это безопасно? Обеспечивает ли компилятор C, возвращаемое значение остается в памяти достаточно долго, чтобы использоваться вызовой функцией? (Или этот риск повреждения памяти). Если последнее, как правильный способ вернуть QString? (Должен ли VAR, чтобы быть статическим? (Какой идентификационный случай 3 присвоенный результат случайной строке) < /p>
Что, если Myfunc - это статический метод, который я хочу вызывать из разных потоков? Придется ли мне пройти дополнительное QString, ссылаясь на то, чтобы убедиться, что каждый вызывающий вызывающий абонент получает свою собственную переменную (и вернуть void)? < /P>
< P> Вот фактическая функция (немного очищена) - и обратите внимание, что эта функция является статичной на случай, если это имеет значение: < /p>
QString L::toString(const L::editions &level)
{
QString levelStr;
switch (level) {
case L:
levelStr = "one";
break;
case L:
levelStr = "two";
break;
case L:
levelStr = "thre";
break;
default:
levelStr = "Internal Error";
break;
}
return levelStr;
}
< /code>
И все же Valgrind жалуется (строка 121 is 'levelstr = "one";') < /p>
34 bytes in 1 blocks are definitely lost in loss record 197 of 716
in L::toString(L::edition const&) in /mnt/lserver2/data/development/haast/src/linfo.cpp:121
1: malloc in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so
2: QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) in /opt/Qt/5.3/gcc_64/lib/libQt5Core.so.5.3.1
3: QString::QString(int, Qt::Initialization) in /opt/Qt/5.3/gcc_64/lib/libQt5Core.so.5.3.1
4: /opt/Qt/5.3/gcc_64/lib/libQt5Core.so.5.3.1
5: QString::fromUtf8_helper(char const*, int) in /opt/Qt/5.3/gcc_64/lib/libQt5Core.so.5.3.1
6: QString::fromUtf8(char const*, int) in [url=file:///opt/Qt/5.3/gcc_64/include/QtCore/qstring.h:492]/opt/Qt/5.3/gcc_64/include/QtCore/qstring.h:492[/url]
7: QString::operator=(char const*) in [url=file:///opt/Qt/5.3/gcc_64/include/QtCore/qstring.h:609]/opt/Qt/5.3/gcc_64/include/QtCore/qstring.h:609[/url]
8: L::toString(L::Lconst&) in
Подробнее здесь: https://stackoverflow.com/questions/255 ... hread-safe
Мобильная версия