получить указалель на соседний елемент структуры
От: Аноним  
Дата: 21.09.04 12:51
Оценка:
Добрый день!
Вот такой вопрос возник.
Есть структура.

struct ST{
  double v1, v2, v3, v4, v5;
};


и функция
void foo( double &v );


в качестве пораметра в нее подается один из елементов структуры.

ST st;
foo( st.v3);


Возможно ли как-нибудь безопоасно в теле функции получить указатель на
соседний елемент структуры (v2)?
Re: получить указалель на соседний елемент структуры
От: Denwer Россия  
Дата: 21.09.04 12:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Вот такой вопрос возник.
А>Есть структура.

А>
А>struct ST{
А>  double v1, v2, v3, v4, v5;
А>};

А>


А>и функция

А>
А>void foo( double &v );
А>


А>в качестве пораметра в нее подается один из елементов структуры.


А>
А>ST st;
А>foo( st.v3);
А>


А>Возможно ли как-нибудь безопоасно в теле функции получить указатель на

А>соседний елемент структуры (v2)?

А что нельзя передать ссылку на всю структуру? Это логичнее и для понимания лучше.
Re: получить указалель на соседний елемент структуры
От: _nn_ www.nemerleweb.com
Дата: 21.09.04 16:39
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Вот такой вопрос возник.
А>Есть структура.

А>
А>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);


А вообще в чем проблема передать саму структуру ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: получить указалель на соседний елемент структуры
От: Аноним  
Дата: 21.09.04 17:31
Оценка:
А>в качестве пораметра в нее подается один из елементов структуры.

А>
А>ST st;
А>foo( st.v3);
А>


А>Возможно ли как-нибудь безопоасно в теле функции получить указатель на

А>соседний елемент структуры (v2)?

Самое безопасное — сделать ее массивом.
Re: получить указалель на соседний елемент структуры
От: vdimas Россия  
Дата: 21.09.04 21:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Возможно ли как-нибудь безопоасно в теле функции получить указатель на

А>соседний елемент структуры (v2)?

попробуй через offsetof привести к базовой структуре...
но если сможешь, лучше обойдись без подобных фокусов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.