Well, it depends
If you want to do things exactly the same way as C (conversion from array to pointer), then there isn't much you can do.
However, if you are willing to extend things a bit, then you could pass array bounds in either fat pointers, or via metadata that can be retrieved via the pointer.
Personally, I would like to be able to pass
int a[14] = {0,};
foo(a);
and have
foo()
be defined:
void foo(int an_array[])
And have the passed array get copied. If I want to share it, I'll explicitly pass a pointer.
Of course, if you did that, then to call C libraries, you would need to make sure that you explicitly passed a pointer to the first element of the array.
I'll think about this more... It isn't that clear.