[英]C++ Pointer returning NULL
嘗試從函數返回值更新為指針。 僅作為背景,這是一個類似於stl向量的模板。 這是返回函數。
////////////////////////////////////////////////////////////////////////////////
//removes an item from the array
const T& remove(int pos)
{
if(pos > cnt)
pos = cnt;
if(pos < 0)
pos = 0;
static T v;
for(int i,k = 0; i < cnt; i++,k++)
{
if(i == pos)
{
v = element[i];
i++;
}
else
element[k] = element[i];
}
cnt--;
return v;
}
/////////////////////////////////////////////////////////////////////////
我正在嘗試更新的指針變量:
TVector<Member*> members;
Member* backmember;
backmember = members.remove(members.size()-1);
但是backmember始終返回null。 我確定我缺少一些簡單的東西,只是不確定什么。 有任何想法嗎? 如有任何問題,請提前告訴我。
我不認為這會初始化i
:
for(int i,k = 0; i < cnt; i++,k++)
嘗試將其更改為此並進行測試:
for(int i = 0,k = 0; i < cnt; i++,k++)
for(int i,k = 0; i < cnt; i++,k++)
i,k
使用逗號運算符,該運算符按順序計算參數,返回最后一個的結果。 因此,這意味着“聲明i,然后聲明k並將其設置為0”
i
沒有被設定。 因此,很可能它會從內存中獲取一些較大的隨機值,並且循環永遠不會運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.