This is not how you initialize an array, but for:
- The first declaration:
char buf[10] = "";
is equivalent tochar buf[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- The second declaration:
char buf[10] = " ";
is equivalent tochar buf[10] = {' ', 0, 0, 0, 0, 0, 0, 0, 0, 0};
- The third declaration:
char buf[10] = "a";
is equivalent tochar buf[10] = {'a', 0, 0, 0, 0, 0, 0, 0, 0, 0};
This is not how you initialize an array, but for:
- The first declaration:
char buf[10] = "";
is equivalent tochar buf[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- The second declaration:
char buf[10] = " ";
is equivalent tochar buf[10] = {' ', 0, 0, 0, 0, 0, 0, 0, 0, 0};
- The third declaration:
char buf[10] = "a";
is equivalent tochar buf[10] = {'a', 0, 0, 0, 0, 0, 0, 0, 0, 0};
As you can see, no random content: if there are fewer initializers, the remaining of the array is initialized with 0
. This the case even if the array is declared inside a function.