Terminação nula de matriz de char
Considere o seguinte caso:
#include<stdio.h>
int main()
{
char A[5];
scanf("%s",A);
printf("%s",A);
}
Minha pergunta é se charA[5]
contém apenas dois caracteres. Diga "ab" e depoisA[0]='a'
, A[1]='b'
eA[2]='\0'
. Mas se a entrada for "abcde", então onde está'\0'
nesse caso. VaiA[5]
conter'\0'
? Se sim, porque?sizeof(A)
sempre retornará 5 como resposta. Então, quando a matriz está cheia, existe um byte extra reservado para'\0'
qualsizeof()
não conta?