Russian Qt Forum

Программирование => С/C++ => Тема начата: helga1917 от Октябрь 17, 2013, 09:41



Название: помогите понять смысл написанного
Отправлено: helga1917 от Октябрь 17, 2013, 09:41
есть несколько записей, которые я не могу понять, помогите, пожалуйста, разобраться :

1)
Код:
void* CfgFile;                                        //указатель на буфер с загруженным конф. файлом
char* FilePtr = NULL;
FilePtr = & ((char*) CfgFile) [sizeof (HEADER)];   //HEADER - структура с данными

2)
Код:
 
VAR* Table = NULL; //VAR - структура с данными
VarValues* Variable = (VarValues*) new VarValues (Table -> Name);   
//здесь не понятно какую роль играет (VarValues*) перед new? почему в скобках?

3)
Код:
PARAMS* VarTable = NULL;  //PARAMS - структура с данными
VarTable = (PARAMS*) (sizeof (HEADER));   


Название: Re: помогите понять смысл написанного
Отправлено: RedDog от Октябрь 17, 2013, 10:03
Такое надо на гвнокод.ру пастить/
А по теме:
1. Берет адрес у некоего объекта, и присваивает его другому, в результате 2 переменные в одно и то же место указывают.
2. конструктор VarValues видимо принимает в качестве аргумента Table -> Name, но в приведенной коде АВ будет, т.к. VAR* Table = NULL;
3. Местный какой то фольклор, не поддается логическому обоснованию без контекста.


Название: Re: помогите понять смысл написанного
Отправлено: mutineer от Октябрь 17, 2013, 10:20
1) В результате FilePtr указывает на (CfgFile + sizeof(HEADER)), то есть на sizeof(HEADER) байт правее, чем CfgFile

2) В скобках потому, что это приведение типа. Зачем оно тут надо не очень понятно

3) Очень странно, размер приводится к указателю. Не вижу смысла


Название: Re: помогите понять смысл написанного
Отправлено: helga1917 от Октябрь 17, 2013, 12:41
спасибо!