Russian Qt Forum

Qt => Общие вопросы => Тема начата: Kosh от Май 17, 2007, 09:48



Название: [qt-3.3.4] QString::ascii()
Отправлено: Kosh от Май 17, 2007, 09:48
Народ, кто знает что происходит при вызове QString::ascii()? Возвращается указатель или выделяется память и делается копия?

Мне надо корректно получат содержимое QString в массив char.


Название: [qt-3.3.4] QString::ascii()
Отправлено: Racheengel от Май 17, 2007, 11:20
из доки:

The result remains valid so long as one unmodified copy of the source string exists.

то есть по идее указатель на шареную память (которую не нужно модифицировать и прибивать).


Название: [qt-3.3.4] QString::ascii()
Отправлено: Kosh от Май 17, 2007, 12:02
Прибивать?

В оющем можно спокойно пользоваться strcpy()?

Блин! Я - хакер, убиться веником...


Название: [qt-3.3.4] QString::ascii()
Отправлено: Racheengel от Май 17, 2007, 12:22
а почему нельзя? :)
strcpy() точно ничего не напортачит.
но если не надо ничего модифицировать - то копировать-то зачем?


Название: [qt-3.3.4] QString::ascii()
Отправлено: Kosh от Май 17, 2007, 13:55
копировать надо, потому что данные потом передаются в другое место именно как char[]

обычно тролли сами за памятью следят,и у меня бы никаких сомнений не возникло бы, но у них встречается где-то случай, когда надо delete самим вызывать.

а сомнения были, потому что казалось, что ascii память выделяет под строку. и было не понятно, толь ей голый указатель подсовывать, толи все же в массив копировать. У меня исходников кутэшных нет.


Название: [qt-3.3.4] QString::ascii()
Отправлено: Racheengel от Май 17, 2007, 15:02
тогда надо.