tamanho da matriz de caracteres e tamanho do ponteiro de caractere
Eu tenho um pedaço de código C e não entendo como osizeof(...)
funciona a função:
#include <stdio.h>
int main(){
const char firstname[] = "bobby";
const char* lastname = "eraserhead";
printf("%lu\n", sizeof(firstname) + sizeof(lastname));
return 0;
}
No código acima sizeof (firstname) é 6 e sizeof (lastname) é 8.
Masbobby
tem 5 caracteres de largura eeraserhead
tem 11 de largura. eu espero16
.
Por que o tamanho se comporta de maneira diferente para a matriz de caracteres e o ponteiro para o caractere?
Alguém pode esclarecer?