passing array size along with pointer in c -


i have function foo processes elements of array size user defined.

this function needs 2 parameters (not 2 seperate arguments, or think) - pointer array , size of array.

are 3 methods used below call function valid ?

int size;                      // obtained user  int arr[size];      foo(int (*arr)[size]);         // size available vairable inside foo ? foo(int (*arr)[],size);         foo(int (*arr)[size],size);    // 2nd parameter redundant here ? 

in c, size not part of array "object". therefore, idiomatic c code passes size of array along array itself:

foo(arr, size); 

for function

void foo(int arr[], int size); 

(in case of array of integers).

see example main function:

int main(int argc, char *argv[]); 

(note arguments reversed here.)


Comments