我很難找到指針數組的長度。比方說,我有:C++如何獲取指針數組的長度?
char array[40] = "hello"; // size 40
int length = sizeof array/sizeof array[0]; // no problem returns 40
//如何只用指向該數組中第一個元素的指針來獲取數組的長度?
char* pchar = array;
//如果
std::strlen(pchar); // this returns the length of 5... i want length 40
//如果
int count = 0;
while(true)
{
if(*(pchar + count) == '\0') // returns 5...
break;
count++;
}
我如何得到它只是從返回一個指針長度40到陣列中的第一個元素?
我發現我可以做到這一點。
int count = 0;
while(true)
{
if(*(pchar + count) == '\0' && *(pchar + count + 1) != '\0')
break;
count++;
}
這會返回39,這很好,但我覺得在某些情況下這可能會出現問題。
你不能從一個指針數組的長度。 – juanchopanza
有黑客,但沒有內置的方式來做到這一點。 – ApproachingDarknessFish