形參中的陣列傳遞的是陣列的首位址

2021-05-10 03:03:51 字數 326 閱讀 2380

形參中的陣列傳遞的是陣列的首位址,如果函式體要使用陣列的長度,需要用另乙個形參傳遞,當要用到傳遞的陣列的元素時,要重新建乙個陣列,並將原陣列的值拷貝過去,如下:

void fun(int a ,int len)

int * b=(int *)malloc(sizeof(int)*len);

memcpy(b,a,len);

或void fun(unsigned char a, int len)

unsigned char * b=new unsigned char[len+1];//+1應該是因為需要儲存"/0"吧

memcpy(b,a,len);

C 陣列形參的傳遞

陣列有兩個特性 傳參的方法 當下有乙個陣列int j 2 我們自寫了乙個函式void findsomeone 要求將陣列引數傳進去。有以下兩種方式 在函式內部使用時,point 即可實現指標的移動 陣列大小 陣列是以指標的形式傳遞給函式的,所以函式並不知道陣列的確切尺寸,因此呼叫者應該為此提供一些資...

二維陣列作為形參的傳遞

include include includeusing namespace std void func1 int arr 5 傳遞陣列,需生命陣列第二維的大小 int test int a 3 error cannot convert int 3 to int for argument 1 to ...

C語言陣列作為形參傳遞,關於sizeof的乙個錯誤

今天覆習排序演算法時用c語言實現,出現乙個問題。void insertsort int a a j 1 cur return 排序結果只有前兩個數字正確,後面的沒有改變。原因是 sizeof a sizeof int 在函式內使用錯誤。a是函式引數,到了本函式中,a只是乙個指標 位址,系統在本函式執...