Добрый день!
Вот такой вопрос возник.
Есть структура.
struct ST{
double v1, v2, v3, v4, v5;
};
и функция
void foo( double &v );
в качестве пораметра в нее подается один из елементов структуры.
ST st;
foo( st.v3);
Возможно ли как-нибудь безопоасно в теле функции получить указатель на
соседний елемент структуры (v2)?
Здравствуйте, Аноним, Вы писали:
А>Добрый день!
А>Вот такой вопрос возник.
А>Есть структура.
А>А>struct ST{
А> double v1, v2, v3, v4, v5;
А>};
А>
А>и функция
А>А>void foo( double &v );
А>
А>в качестве пораметра в нее подается один из елементов структуры.
А>А>ST st;
А>foo( st.v3);
А>
А>Возможно ли как-нибудь безопоасно в теле функции получить указатель на
А>соседний елемент структуры (v2)?
А что нельзя передать ссылку на всю структуру? Это логичнее и для понимания лучше.
Здравствуйте, Аноним, Вы писали:
А>Добрый день!
А>Вот такой вопрос возник.
А>Есть структура.
А>А>struct ST{
А> double v1, v2, v3, v4, v5;
А>};
А>
А>и функция
А>А>void foo( double &v );
А>
А>в качестве пораметра в нее подается один из елементов структуры.
А>А>ST st;
А>foo( st.v3);
А>
А>Возможно ли как-нибудь безопоасно в теле функции получить указатель на
А>соседний елемент структуры (v2)?
Вот так:
struct ST{ double v1, v2, v3, v4, v5; };
void f(double* pd)
{
ST* pst = (ST*)pd;
pst->v2 = 1.0; // если не будет передана структура будет бум
}
ST st;
f(&st.v1);
А вообще в чем проблема передать саму структуру ?
А>в качестве пораметра в нее подается один из елементов структуры.
А>А>ST st;
А>foo( st.v3);
А>
А>Возможно ли как-нибудь безопоасно в теле функции получить указатель на
А>соседний елемент структуры (v2)?
Самое безопасное — сделать ее массивом.