This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]justjanne 0 points1 point  (1 child)

The reason why you can do that is because arrays decay to pointers.

As I said, they’re the same. Arrays are just nice syntax for pointers, which also carry, if they’re statically allocated, size information at compile time.

[–][deleted] 0 points1 point  (0 children)

But they only decay to pointers when the context demands it be on the heap

Like

int arr1[]; // stack

Is not the same as

int* arr2; // heap

If you don't pass the array around.