Ir ao conteúdo
  • Cadastre-se

Matheus Dionysio

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá, estou fazendo um exercício em c , e nãoo sei porque a função esta dando falha de segmentação. void preencher (int vetS[],int vetB[],int vetM[],int n ){ int i,e,a; //Criando os vetores; puts("Insira o numero de elementos no vetor" ); scanf("%i",&n); vetS =(int *) malloc((n+1)*sizeof(int)); vetM =(int *) malloc((n+1)*sizeof(int)); vetB =(int *) malloc((n+1)*sizeof(int)); //prenchendo os vetores com numeros aleatorios puts("digite : \n1 - Para gerar entre 0 e 9\n2 - para gerar valores entre 0 e 99\n3 - para gerar valores entre 0 e 999"); scanf("%i",&e); while ( (e > 3) || (e <= 0) ){ puts("Favor digitar um numero entre 1 e 3"); scanf("%i",&e); } if( e == 3) for (i = 1;i <= n;i++){ a = rand () %1000; printf("%i\n",a ); vetS = a; vetB = a; vetM = a; } else if(e == 2) for (i = 1;i <= n;i++){ a = rand () %100; vetS = a; vetB = a; vetM = a; } else for (i = 1;i <= n;i++) { a = rand () %100; vetS = a; vetB = a; vetM = a; } }
  2. Usei a funçao bsearch pra fazer uma busca em um vetor de string e ta dando erro de segmentação , segue o código #include <stdio.h> #include <stdlib.h> #include <string.h> char *dicionario[275502]; static int compara(const void *p1, const void *p2) { return strcmp(* (char * const *) p1, * (char * const *) p2); } int main () { FILE *dic; char *line = NULL; size_t l = 0; size_t nread; int Lidos = 0,i; char lido[22]; //carregar o dicionario para dentro do programa dic = fopen ( "/usr/share/dict/brazilian", "r"); if( dic == NULL ){ printf("Erro, nao foi possivel abrir o arquivo\n"); exit(1); } else{ while (( nread = getline(&line,&l,dic)) != -1) { char * novapalavra = malloc (nread-1); strncpy(novapalavra,line , nread - 1); dicionario[Lidos] = novapalavra; Lidos++; } } //tratando o texto scanf("%s", lido); while( *lido != EOF) { //transformando tudo em minusculas for (i=0; i < strlen (lido); i++) if((lido) >= 65 && (lido) <= 90) lido += 32 ; //Fazendo a busca no dicionario e imprimindo if( bsearch(&lido,dicionario,275502,sizeof(char*), compara )) printf(" %s \t",lido); else printf("[ %s ]\t", lido ); scanf("%s", lido); } return (0); }
  3. valeu cara, nem tinha percebido isso, fiquei até com vergonha kkk Mas eu arrumei o erro e agora ta dando segmentation fault e não to entendendo o porque Segue o codigo arrumado : #include <stdio.h> #include <stdlib.h> #include <string.h> char *dicionario[275502]; int main () { FILE *dic; char *novapalavra; char *line = NULL; size_t l = 0; size_t nread; int Lidos = 0; //carregar o dicionario para dentro do programa dic = fopen ( "/usr/share/dict/brazilian", "r"); if( dic == NULL ){ printf("Erro, nao foi possivel abrir o arquivo\n"); exit(1); } else{ while (( nread = getline(&line,&l,dic)) != -1) novapalavra = (char *)malloc (nread-1); strncpy(novapalavra,line , nread - 1); dicionario[Lidos] = novapalavra; Lidos++; } return (0); }
  4. Olá, tenho que fazer um programa que carrega o dicionario da partição /usr/share/dict/brazilian pra memória do programa , só que fiz alguma coisa errada e não estou conseguindo arumar . Segue o código : #include <stdio.h> #include <stdlib.h> #include <string.h> char *dicionario[275502]; int main () { FILE *dic; char *novapalavra; char *line = NULL; size_t l = 0; size_t nread; int Lidos = 0; //carregar o dicionario para dentro do programa dic = fopen ( "/usr/share/dict/brazilian", "r"); if( dic == NULL ){ printf("Erro, nao foi possivel abrir o arquivo\n"); exit(1); } else{ while (( nread = getline(&line,&l,dic)) != -1) *novapalavra = malloc (nread-1); strncpy(novapalvra,line , nread - 1); *dicionario[Lidos] = novapalvra; Lidos++; } printf("%s \n",dicionario[0]); printf("%s \n ",dicionario[1]); return (0); } e o erro é : sad.c: In function ‘main’: sad.c:25:17: warning: assignment makes integer from pointer without a cast [-Wint-conversion] *novapalavra = malloc (nread-1); ^ sad.c:26:12: error: ‘novapalvra’ undeclared (first use in this function) strncpy(novapalvra,line , nread - 1); ^ sad.c:26:12: note: each undeclared identifier is reported only once for each function it appears in. Obs: eu tenho que colocar cada palavra(uma palavra por linha dentro do vetor).

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