2
有人可以幫我解決這個問題嗎?獲取C中參數傳遞的數組元素的數量?
我認爲這是不可能的......除非我通過另一個參數的大小?我期待避免它。
我該怎麼做?
int size(int *array){
return (sizeof(array)/sizeof(int));
};
int main(int argc, const char * argv[])
{
int array[] = {1,2,3,4};
printf("%d", size(array));
return 0;
}
謝謝!
每個C程序員都寫這個宏。命名選擇很有趣,以前沒有看到過你的版本。請忽略投票給你的白癡,很好的回答。 –
你應該補充說,這隻適用於數組*之前*它們衰減到指向第一個元素的指針;這對C新手來說並不明顯。 (儘管陣列衰減也不是。) – detly
Minor:考慮'printf(「%u」,SIZEOF_ARRAY(array))''或'printf(「%zu」,SIZEOF_ARRAY(array))''。 – chux