Greetings,
I am trying to learn pointers in C, I simply want my “addtwo” function to add 2 to every element of the input integer array, yet I get odd compilation errors, here is the non-pointer version which indeed won’t properly compile.
addtwo(int *arr[]) {
int i=0;
for(;i< sizeof(arr)/sizeof(int);i++) {
arr[i] = arr[i] + 2;
}
}
main() {
int myarray[] = {1,2,3,4};
addtwo(myarray);
}
Regards
addtwo(int *arr[])should beaddtwo(int *arr)You cannot use sizeof to get the size of an array from a pointer. Typically you would either pass the size of the array as a separate arg or have some special value marking the last element.