В следующем коде для обеспечения безопасности я хочу свернуть указатель перед возвратом сохраненного им адреса. Как я могу это сделать?Уточнить указатель перед возвратом адреса
int& foo (vector<int>& vec)
{
double dis = 1e6;
int* ptr = NULL;
for (int& i: vec)
{
tmp = calculate (i);
if (tmp < dis)
{
dis = tmp;
ptr = &i;
}
}
if (ptr != NULL)
{
// How to nullify the ptr?
return *ptr;
}
}
Это выглядит ужасно. Если вы опишете, что вы хотите сделать, возможно, вы можете получить несколько советов, как написать лучшую функцию. – nvoigt
Моя цель - вернуть адрес целого числа, выбранного по определенному условию. Я возвращаюсь по ссылке, потому что мне нужно использовать точно такое же целое число позже, а не его копию. – Shibli
Это пахнет плохим дизайном. Зачем вам нужен адрес того, что хранится в векторе? – nvoigt