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