Jump to content
Fórum Script Brasil
  • 0

Duvida com segmentation fault


Question

#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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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.

Edited by Hazzu
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148901
    • Total Posts
      644985
×
×
  • Create New...