реклама на сайте
подробности

 
 
> Указатели на массивы в структуре
Grizzzly
сообщение Mar 11 2014, 16:30
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Разбираю код, написанный давным-давно не мной и скомпилированный древним RVDS 2.2. Программа работает, но возник вопрос.
Есть некая структура:
Код
typedef struct
    {
     UINT64 Power[5];
     UINT64 IncThreshold[5];
     REAL32 NoisePower[5];
    }Data;

Затем в программе объявляется указатель на Power:
Код
UINT64 *pPower = &ChData.Power[0];

А потом по этому же указателю происходит обращение к элементам массива IncThreshold. Например,
Код
pPower[5];
И так далее.
Насколько это безопасно? В данном случае массивы Power и IncThreshold расположены последовательно. Ошибки нет.
Вдруг другой компилятор расположит элементы структуры по-другому? Не говоря уже о том, что можно забыть и самому добавить новые элементы в структуру между данными массивами.
На мой взгляд, доволно странный код.

Сообщение отредактировал Grizzzly - Mar 11 2014, 16:32
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016