C error: is a pointer; did you mean to use '->'?
Publicado por Marcos (1 intervención) el 17/11/2019 03:48:22
Hola en 2 dias tengo que entragar un trabajo y tengo un problema con un algoritmo en c, no esta funcionando correctamente y no encuentro el error, probablemente es un mal uso de punteros ya que no lo aprendi correctamente, si alguien puede explicarme que estoy haciendo mal le agradeceria el codigo es el siguiente:
Lo paso todo en un mismo codigo pero es una biblioteca separada en biblioteca.h donde estan las cabeceras, tipos y algunas variables y biblioteca.c donde estan las funciones.
el error que me lanza es: error: '*l' is a pointer; did you mean to use '->'?
Lo paso todo en un mismo codigo pero es una biblioteca separada en biblioteca.h donde estan las cabeceras, tipos y algunas variables y biblioteca.c donde estan las funciones.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//Registro con informacion de una pelicula
enum generos {Action, Comedy, Adventure, Drama, Horror, SciFi, Fantasy, Animation};
typedef enum {Color, BW}Tcolor;
typedef struct{
char id[15];
char titulo[100];
char director[35];
enum generos genero;
char likes[10];
char cantidad_votantes[10];
char voto_promedio[5];
char anio[4];
char costo[15];
Tcolor color;
}Movie;
//LSE de Movie
struct Nodo{
Movie pelicula;
struct Nodo *next;
};
//Puntero al primer elemento de la LSE
typedef struct{
struct Nodo *head;
}Lista;
//Arreglo de peliculas con cantidad
typedef struct{
Movie peliculas[SIZE];
int cant;
}Arreglo;
FILE *archivo;
Lista *lista;
void Inicializar(Lista **l){
*l=malloc(sizeof(struct Nodo));
}
void Insertar(Lista **l, Movie a){
Lista *aux=malloc(sizeof(struct Nodo));
aux->head->pelicula=a;
aux->head->next=l->head->next;
l->head->next=aux->head;
}
void DeTxtALista(Lista *l, FILE *f){
char auxGenero[15];
char auxColor[10];
Movie aux;
f=fopen("peliculas.txt","r");
if(f == NULL ) {
printf("No fue posible abrir el archivo\n");
}
fgets(aux.id, sizeof(aux.id), f);
fgets(aux.titulo, sizeof(aux.titulo), f);
fgets(aux.director, sizeof(aux.director), f);
fgets(auxGenero,(sizeof(auxGenero)), f);
if (strcmp(auxGenero, "Action") == 0){
aux.genero=Action;
}else if (strcmp(auxGenero, "Comedy") == 0){
aux.genero=Comedy;
}else if (strcmp(auxGenero, "Adventure") == 0){
aux.genero=Adventure;
}else if (strcmp(auxGenero, "Drama") == 0){
aux.genero=Drama;
}else if (strcmp(auxGenero, "Horror") == 0){
aux.genero=Horror;
}else if (strcmp(auxGenero, "SciFi") == 0){
aux.genero=SciFi;
}else if (strcmp(auxGenero, "Fantasy") == 0){
aux.genero=Fantasy;
}else if (strcmp(auxGenero, "Animation") == 0){
aux.genero=Animation;
}
fgets(aux.likes,(sizeof(aux.likes)), f);
fgets(aux.cantidad_votantes,(sizeof(aux.cantidad_votantes)), f);
fgets(aux.voto_promedio,(sizeof(aux.voto_promedio)), f);
fgets(aux.anio,(sizeof(aux.anio)), f);
fgets(aux.costo,(sizeof(aux.costo)), f);
fgets(auxColor,(sizeof(auxColor)), f);
if (strcmp(auxColor, "Color") == 0){
aux.color=Color;
}else if (strcmp(auxColor, "BW") == 0){
aux.color=BW;
}
Insertar(l, aux);
fclose(f);
}
el error que me lanza es: error: '*l' is a pointer; did you mean to use '->'?
Valora esta pregunta


0