Название: Qt и sizeof() Отправлено: Nelkor от Октябрь 18, 2014, 17:32 Вопрос, наверное, детский, но будет ли корректно работать такая конструкция?
Код: int sizeOfTestList = sizeof(testList); То есть сохранять в переменную sizeOfTestList размер объекта testList, какого бы класса он не был? И какие в этом случае могут быть подводные камни? Заранее благодарю) И может быть, размер объекта лучше хранить не в Инте? А тогда в чем лучше? Я понимаю, что есть класс QSize, но имеет ли он сам фиксированный размер или нет? Инт меня привлекает именно фиксированным в 4 байта размером... Название: Re: Qt и sizeof() Отправлено: gil9red от Октябрь 18, 2014, 17:55 http://msdn.microsoft.com/ru-ru/library/4s7x1k91.aspx
"Результат оператора sizeof имеет тип size_t, целочисленный тип, определенный во включаемом файле STDDEF.H. Благодаря этому оператору можно избежать жесткого прописывания размеров данных, которые часто зависят от типа комрьютера" Название: Re: Qt и sizeof() Отправлено: Nelkor от Октябрь 18, 2014, 18:10 И всё-таки будет корректно работать?)
Название: Re: Qt и sizeof() Отправлено: Bepec от Октябрь 18, 2014, 18:23 Смотря что смотря как. Если работать будете с объектами Qt, то скорее всего получили размер указателя :D
Название: Re: Qt и sizeof() Отправлено: kambala от Октябрь 18, 2014, 18:35 Инт меня привлекает именно фиксированным в 4 байта размером... при сборке 64-битным компилятором приятно удивишься :Dразмер объекта далеко не всегда строго равен сумме размеров его полей Название: Re: Qt и sizeof() Отправлено: Igors от Октябрь 19, 2014, 10:33 То есть сохранять в переменную sizeOfTestList размер объекта testList, какого бы класса он не был? И какие в этом случае могут быть подводные камни? Заранее благодарю) Формально да, практически нет. ПримерКод Какую бы строку ни давали - всегда получите size = 4 (8 в 64 бит). Формально это верно - размер "самого объекта" 4. Но он может разместить 100 Мб в куче, а к этому sizeof уже не имеет отношения |