獲取陣列長度
函式通過引數傳入乙個陣列的指標,如何獲取該陣列的長度?如
int find(int* array,int key)
其中array的長度如何獲取?
用過sizeof(array) / sizeof(int),但是結果不對,始終是1
滿意回答
int mylen(int buf)
int main(void)
;int l = mylen(buf);
printf("%d\n", l);
system("pause");
return 0;
}但是這樣寫就是正確的,因為buf的分配過程是在編譯階段定義:
int main(void)
;int l =sizeof(buf) / sizeof(int);
printf("%d\n", l);
system("pause");
return 0;
}您關心的array長度問題,只能從引數解決:
int find(int * array, int len, int key);
或者以協議方式,將首位址的值定為長度:
int find(int * xarray, int key)
{assert(xarray);//斷言
int ln = xarray(0); //首變數儲存陣列長度
int * array = xarray + 1; //正式位址從下乙個位址開始
...
php獲取陣列長度函式sizeof與count用法
count count 函式計算陣列中的單元數目或物件中的屬性個數,對於陣列,返回其元素的個數,對於其他值,返回 1,如果引數是變數而變數沒有定義,則返回 0,如果 mode 被設定為 count recursive 或 1 則會遞迴底計算多維陣列中的陣列的元素個數.sizeof 定義和用法,siz...
php獲取陣列長度函式sizeof與count用法
count count 函式計算陣列中的單元數目或物件中的屬性個數,對於陣列,返回其元素的個數,對於其他值,返回 1,如果引數是變數而變數沒有定義,則返回 0,如果 mode 被設定為 count recursive 或 1 則會遞迴底計算多維陣列中的陣列的元素個數.sizeof 定義和用法,siz...
用sizeof測量陣列長度
今天本想寫乙個進行陣列排序的 但我被乙個bug困住了,事情是這樣的 int a 定義陣列 int n sizeof a 求陣列長度 int i 輸出陣列 printf 陣列 for i 0 i printf 10i a i 陣列 1549 93998 724199344 2981888 635684...