簡體   English   中英

C ++指針返回NULL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM