Для полей структур выполняется ли следующее:
struct A {
int i;
int j;
};
A a;
Можно ли утверждать, что адрес &a.j == ((char*)&a) + sizeof(int), где под sizeof(int) подразумевается место занимаемое полем i (не критикуйте здесь за возможное undefined behavour, важен смысл).
Если нет, то как вычислить адрес j, зная количество и типы полей в структуре.
Дело в том, что Oracle генерирует подобные структуры утилитой, а потом их можно передавать в оракловскую функцию которая принимает void*, т.е. получается что в этой функции Oracle определяет адреса полей, используя только мета-информацию из системной базы данных. А вот как он это делает?
Речь идет не вообще об alignment, а именно о полях структур.