In C++, you can do this by passing the array by reference:
void foo(int (&foo)[10]) {}
However, that is not "minimum of 10" but "exactly 10".You can also get the size at compile time:
template <size_t N> void foo(int (&foo)[N]) { int newarry[N+2]; }
I've used the above for something like this: template <size_t N> void safe_strcpy(char (&buf)[N], const char *src) {
strncpy(buf, src, N-1);
buf[N-1] = 0;
}