Considere o segundo trecho de código em C
char str1[6] = "Prova";
char str2(5);
strcpy(str2, str1);
Suponha que esse código seja executado em uma máquina com um compilador C padrão. Qual das seguintes afirmações é verdadeira sobre a execução desse trecho de código?
A- O código irá causar um erro de compilação devido à tentativa de copiar uma string para um vetor que não tem espaço suficiente
B- O código irá compilar e copiar a string "Prova" para o vetor "str2" sem problemas.
C- O código irá copiar a string "Prova" para o vetor "str2", mas não irá incluir o terminador de string nulo (\0)
D- O código irá copiar a string "Prova" para o vetor "str2", mas irá incluir caracteres adicionais após o terminador de string nulo (\0)
E- o código irá compilar mas irá gerar uma inconsistencia de dados devido à tentativa de copiar uma string para um vetor que não possui espaço suficiente
A alternativa correta é a letra C - O código irá copiar a string "Prova" para o vetor "str2", mas não irá incluir o terminador de string nulo (\0). Isso ocorre porque o vetor "str2" tem tamanho 5, mas a string "Prova" tem 6 caracteres (contando com o caractere nulo de terminação). Portanto, a função strcpy() copiará os primeiros 5 caracteres da string "Prova" para o vetor "str2", mas não incluirá o caractere nulo de terminação. Isso pode causar problemas se o vetor "str2" for usado como uma string em outras partes do código.
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar