-2
在下面的代碼中,爲了安全起見,我想在返回它存儲的地址之前使指針無效。我怎樣才能做到這一點?在返回地址之前取消指針
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 2014-08-31 13:24:03
我的目標是根據某些條件返回所選整數的地址。我通過引用返回,因爲我需要使用完全相同的整數,而不是它的副本。 – Shibli 2014-08-31 13:28:20
聞起來很糟糕的設計。爲什麼你需要將地址存儲在向量中? – nvoigt 2014-08-31 13:31:10