Could you please tell me what is the difference between the following array declaration patterns:
Moreover, if I pass my array to a function and I want that function to modify this array, wouldn't it be enough to pass the array pointer (be it name TYPE * or the array's name)? Or do I need to pass the array as a reference? (Such as in TYPE& name)?
And what goes on under the hood in these two cases? I know the memory for this array will be allocated in the stack, but I would like to know with a little more detail what goes on when an array is declared when using the aforementioned patterns.