G'day!
If I have a function which takes an array of ints as an argument, and then from within that function, send off that same array to another function, will it still be able to edit the array values and have them be committed at a main level rather than at a function level?
i.e
int
main(int argc, char *argv[]) {
int A[50];
functionB(A);
}
where function B looks like:
void functionB(int A[]) {
functionC(A);
}
and function C is the one which actually mutates the values within A[].
Would main see the changed array or the original A[]?
Thanks!
Array decays to pointer. So it will modify the original array.
Check it
void functionC(int A[]) {
A[0] = 1;
A[1] = 2;
}
void functionB(int A[]) {
functionC(A);
}
int
main(int argc, char *argv[]) {
int A[2]={5,5};
printf("Before call: %d %d\n",A[0],A[1]);
functionB(A);
printf("After call : %d %d\n",A[0],A[1]);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With