作者fjf1980 (Yes We Can!)
看板C_and_CPP
標題[問題] 有計算陣列長度的函數嗎?
時間Wed Nov 18 00:02:02 2009
如題
我知道strlen可以計算串列長度,可是陣列沒辦法
我實際跑了,結果也是錯的。
int main(int argc, char *argv[])
{
int a[3]={3,1,1};
char b[9];
char *str="1234";
printf("%d",strlen(b));
system("PAUSE");
return 0;
}
例如這樣,如果是strlen(str)這樣就可以
那有可以計算陣列長度的函示嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.203.30
1F:→ MOONRAKER:strlen()可以是因為他假設結尾一定有'\0' 11/18 00:04
2F:→ tinlans:沒有,你必須自己用變數或常數記住那個數字。 11/18 00:04
3F:→ netsphere:int array : sizeof(ArrayName) / 4 11/18 00:04
4F:推 ducksteven:strlen看到\0才會停止。 11/18 00:04
5F:→ MOONRAKER:在一般的陣列中不會這樣,但若你能保證也許就可以 11/18 00:04
6F:→ fjf1980:阿 對 我忘了strlen是看\0的 感謝 11/18 00:05
7F:→ james732:在你的情況裡可以用 sizeof 11/18 00:07
8F:→ tinlans:但是傳到外面去 3F 的算法就失效了,而且正確的寫法應該 11/18 00:11
9F:→ tinlans:是 / sizeof(int) 而不是直接寫 4,總之自己紀錄就對了。 11/18 00:11
10F:推 softwind:用sized array, 或是改用C++的vector 11/18 00:21