Ir para conteúdo

Lucas Praxedes Fischer de Mattos

Membros
  • Postagens

    1
  • Registro em

  • Última visita

Conquistas de Lucas Praxedes Fischer de Mattos

0

Reputação

  1. estou fazendo um codigo para somar 2 listas encadeadas de numeros inteiros, porem sempre fica dando "signal: segmentation fault(core dumped)" no repl.it e "runtime error" no compilador da propria faculdade. Com a entrada "12 21" sai o resultado parcial: "O valor é: 2 12 1 1634545454 signal: segmentation fault(core dumped)" Além disso, a funçao "libera" e "retira" também dão o mesmo erro. Isso, porque eu fiz literalmente igual ao codigo exemplo da professora. /* Programa: Exercício 4 Autor: Lucas Praxedes Fischer de Mattos (RA 156697) Turma: IB Concluída em: 16/11/2021*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 100 typedef struct lista{ int digt; struct lista *prox; } reglista; typedef reglista *pont; pont alocacao(pont lista, int val){ pont novo=(pont)malloc(sizeof(reglista)); novo->digt= val; novo->prox= lista; return novo; } pont retira(pont lista, int val){ pont ant= NULL, busca; for(busca=lista; busca!=NULL && busca->digt!=val; busca=busca->prox) ant= busca; if(busca==NULL) return lista; if(ant==NULL) lista=busca->prox; else ant->prox=busca->prox; return lista; } void libera(pont lista){ pont paux=lista, paux2; while(paux!=NULL){ paux2=paux->prox; free(paux); paux=paux2; } } void imprime (pont lista) { pont paux; for (paux = lista; paux != NULL; paux = paux->prox) printf ("%d\n", paux->digt); } pont soma(pont lista1, pont lista2){ pont paux; int val= lista1->digt + lista2->digt; while(lista1->prox != NULL && lista2->prox != NULL){ if(val>9){ paux->prox->digt=1; paux->digt=val-10; } else paux->digt=+val; lista1=lista1->prox; lista2=lista2->prox; paux=paux->prox; val=lista1->digt+lista2->digt; } return paux; } int main(){ pont lista1, lista2, lista3; char string1[MAX], string2[MAX]; int i=0; scanf("%s", string1); scanf("%s", string2); while(i<strlen(string1)){ lista1=alocacao(lista1,atoi(&string1[i])); i++; } i=0; while(i<strlen(string2)){ lista2=alocacao(lista2,atoi(&string2[i])); i++; } printf("O valor é: "); imprime(lista1); return 0; }
×
×
  • Criar Novo...