Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
¿Las cadenas definidas están configuradas en todos los valores NULL?

Podría haber jurado que leí que una cadena que se definió pero no se inicializó se configuró en todos NULL. En otras palabras, que

 char string[10];

constaba de 10 caracteres nulos, y que

 char string[10] = "Kevin";

consta de las letras 'K', 'e', 'v', 'i', 'n' y cinco nulos.

Es esto cierto:

  1. ¿Siempre?
  2. A veces, dependiendo del compilador?
  3. ¿Nunca?
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

en otras palabras, esa cadena char[10]; constaba de 10 caracteres nulos,

Eso depende de dónde y de la variable.

 char here_yes[10]; // 10 '\0' characters int main() { char here_no[10]; // 10 unknown garbage values static char but_here_also_yes[10]; // also 10 '\0' characters }

y ese char string[10] = "Kevin"; consta de las letras 'K', 'e', 'v', 'i', 'n' y cinco nulos. ¿Es esto cierto: siempre?

Sí. Si inicializa parcialmente una cadena o una variable, el resto se rellena con '\0' o ceros.

 char this_has_10_nulls[10] = ""; int main() { char this_has_ab_followed_by_8_nulls[10] = { 'a', 'b' }; static char this_has_Kevin_followed_by_5_nulls[10] = "Kevin"; }
over 4 years ago · Santiago Trujillo Relatório

0

Si no hay un inicializador presente (como en su primer ejemplo), todos los elementos de la matriz tendrán valores indeterminados. De este Proyecto de Norma C11 :

6.7.9 Inicialización

…
10 Si un objeto que tiene duración de almacenamiento automático no se inicializa explícitamente, su valor es indeterminado.

Sin embargo, si proporciona algún tipo de inicializador (como en su segundo ejemplo), cualquier elemento en la matriz que no esté configurado explícitamente se inicializará a cero. De unos pocos párrafos más adelante en el Estándar:

21 Si hay menos inicializadores en una lista entre llaves que elementos o miembros de un agregado, o menos caracteres en una cadena literal utilizada para inicializar una matriz de tamaño conocido que elementos en la matriz, el resto del agregado se inicializará implícitamente igual que los objetos que tienen una duración de almacenamiento estática.

(Tenga en cuenta que un char de duración de almacenamiento estático se inicializará a cero).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda