Strlen devuelve un número irrazonable

Si escribo:

char  lili [3];
cout<<strlen(lili)<<endl;

entonces lo que se imprime es: 11

pero si escribo:

char  lili [3];
lili [3]='\0';
cout<<strlen(lili)<<endl;

entonces obtengo 3.

No entiendo por qué devuelve 11 en la primera parte?
No se supone que Strlen devuelva 3, ya que asigné 3 caracteres paralili?