如何利用指向數組的指針得到數組元素個數?
問題背景:
我得到了一個元素個數不確定的數組
array={element1,element2……}
現在將一個指針指向數組
char * pArray ;
pArray= array;
如果要通過指針處理數組中每個元素, 直到所有元素操作一遍
*(pArray+i)
問題來了:i是多少?如何得到這個i ?
網絡上搜羅來的辦法:
辦法1、
判斷指針是否為空
while(*pArray)
{
i++;
pArray++;
}
方法2、
一般數組都會帶一個長度,比如定義的時候確定的長,比如結構體中元素1是長元素2是數組
但是這里肯定是用不到了
錯誤的辦法:
錯1、
sizeof(pArray)/sizeof(pArray[0]) //我剛開始就是這樣做的,實際這TM是算指針長度的,怎么着結果都是1
錯2、
while(++pArray!=NULL) //判斷指針還是用nullptr吧
我的解決辦法:
我的1、
while(pArray!=nullptr)
{
++i;
++pArray;
}
我的2、
iterator迭代器,我剛才想起來的,具體沒驗證,再說吧