Ir ao conteúdo

C Falha de segmentação no código. Qual o erro??


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Olá, galera meu código esta dando falha de segmentação em uma das funções, mas não consigo achar o erro alguém pode me ajudar?

int* uniao (int* z, int nZ, int* v, int nV, int* nT){
    int *U;
    int i, j, k, l, g=0;
    *nT=0;
    for (i=0; i<nZ; i++){
        U[i] = z[i];
    }
    for (j=0; j<nV; j++, i++){
        U[i] = v[j];
    }
    for (k=0; k<i; k++){
        for (l=0; l<i; l++){
            if (U[k] == U[l]){
                U[g]=U[k];
            g++;
            }
        }
    }
    *nT=g;
    return U;
}

  • Solução
Postado

@André Gomides O ponteiro U só foi declarado e você está tentando atribuir valores a ele antes de fazer qualquer alocação (ou dele apontar para algum endereço com as posições dos elementos já alocadas na memória). Para fazer a alocação dinâmica pode usar a função malloc, p.ex,

int *U = (int *)malloc(sizeof(int) * (nZ + nV));

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!