In C, I have read that half-initialized arrays will be filled with zeros for the rest of the elements (irrespective of integer or char arrays).
E.g.:
in
If you want to be sure that your code will work with all compilers you should initialize all your array elements just like it:
int arr[10] = {3,0,0,0,0,0,0,0,0,0};
If the number of elements of your array is too high (100 or 10000) the best solution becomes to initialize it dynamicaly at the runtime.