[問題] 陣列作為參數傳入函數
我想利用sizeof計算陣列的大小,在main裡沒有問題,但在arrParm函數內,
編譯器只把傳入的陣列位址當作一個指向整數型態的指標,所以sizeof(arr)
取到的值是8,而不是20
我該如何將陣列傳入函數,才能讓compiler知道我傳的是陣列,而不只是一個
指向整數的指標呢?麻煩大家幫忙了,謝謝。
程式碼如下:
#include <iostream>
using namespace std;
void arrParm(int* arr)
{
for (int i=0; i<sizeof(arr)/sizeof(int); i++)
cout << arr[i];
}
int main()
{
int inarray[] = {1,2,3,4,5};
for (int i=0; i<sizeof(inarray)/sizeof(int); i++)
cout << inarray[i];
cout << endl;
arrParm(inarray);
return 0;
}
輸出:
12345
12
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.138.176.173
推
03/07 12:55, , 1F
03/07 12:55, 1F
→
03/07 13:06, , 2F
03/07 13:06, 2F
推
03/07 13:34, , 3F
03/07 13:34, 3F
推
03/07 13:37, , 4F
03/07 13:37, 4F
→
03/07 14:04, , 5F
03/07 14:04, 5F
推
03/07 18:13, , 6F
03/07 18:13, 6F
推
03/07 19:12, , 7F
03/07 19:12, 7F
推
03/07 20:44, , 8F
03/07 20:44, 8F