Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida com segmentation fault


Hazike

Pergunta

#include <stdio.h>
void intercalada(int vetA[], int tamA, int vetB[], int tamB)
{
int a = 0, b = 0;
int i;
for(i = 0; i < (tamA+tamB); i++)
{
if(!(i % 2))
{
if(a > tamA)
{
printf("%d ", vetB);
b++;
}
else
{
printf("%d ", vetA[a]); // estou recebendo segmentation fault nessa linha, algm pode me ajudar?
a++;
}
}
else
{
if(b > tamB)
{
printf("%d ", vetA[a]);
a++;
}
else
{
printf("%d ", vetB);
b++;
}
}
 
}
}
int main()
{
int tamA = 10, tamB = 5;
int vetA[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int vetB[5] = {2, 2, 2, 2, 2};
intercalada(vetA[10], tamA, vetB[5], tamB);
return 0;
}
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Em 26/05/2020 em 19:41, Hazike disse:

if(a > tamA)

Para o caso a = tamA, isso resultará falso e você acabará imprimindo a linha:

 

Em 26/05/2020 em 19:41, Hazike disse:

printf("%d ", vetA[a]);

que resultará no acesso a uma posição na memória não reservada para seu vetor (Falha de segmentação). Falha de segmentação é um erro que ocorre em programa quando este tenta acessar um endereço na memória RAM que está reservado para outro programa ou que não existe.
Lembre-se que em C os índices das posições vetoriais começam em 0 e terminam em tam-1, fazendo com que a posição tam não exista.

Editado por Hazzu
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...