You can use a sentinel value which is the way strings are dealt with. The drawback is that you have to iterate over the entire array to find it's size.
For example, when you have a string such as:
char s1[] = "foobar";
What you actually have is an array of length 7, with the seventh spot being a null terminating char '\0' which serves to indicate the end of the array / string.
Another way you could do it is to create a struct which consists of a size followed by the array.