Forum » Programiranje » C pomoč
C pomoč
Trdi ::
Tole mam za domačo nalogo, pa ne najdem napake, javi mi napako v sedmi vrsti:
LINE 7: two or more data types in declaration of `sestavi'
Tole je glavni program(od tu naprej prilagam le pomembne stvari):
#include
#include
#include "seznam.h"
struct seznam *sestavi(void); /* LINE 7!!!!!!!!! */
void izpisi(struct seznam *);
struct seznam *novi(struct seznam *, struct seznam *);
int main(void)
{
struct seznam *drugi,*prvi;
prvi = sestavi();
drugi = sestavi();
izpisi(prvi);
izpisi(drugi);
prvi = novi(prvi,drugi);
izpisi(prvi);
return 0;
}
Tako zgleda seznam.h:
#ifndef SEZNAM_H
#define SEZNAM_H
struct seznam
{
int el; /* vsebina elementa */
int fr; /* frekvenca */
struct seznam *nasl; /* kazalec na naslednji element seznama */
}
#endif
Funkcija je pa taka. Je v seznam.c in vsi include stavki so v redu:
struct seznam *sestavi()
{
int i,elem,frek;
struct seznam *p = NULL;
struct seznam **q = &p;
for(i = 1; (*q = malloc(sizeof(*p))) != NULL; i++){
printf("%d. element: ",i);
scanf("%d",elem);
printf("%d. frekvenca: ",i);
scanf("%d",frek);
if (frek == 0) break;
(*q)->el = elem;
(*q)->fr = frek;
(*q)->nasl = NULL;
q = &(*q)->nasl;
}
return p;
}
Aja, prototip sem prestavil iz seznam.h v glavni program (brezveze, vem), ampak isto je javilo tudi prej. Tako v seznam.c kot tudi v glavnem programu je javilo napako v vrstici, ki je označena (seveda v seznam.h)
Dejte mi prosim pomagat.
LINE 7: two or more data types in declaration of `sestavi'
Tole je glavni program(od tu naprej prilagam le pomembne stvari):
#include
#include
#include "seznam.h"
struct seznam *sestavi(void); /* LINE 7!!!!!!!!! */
void izpisi(struct seznam *);
struct seznam *novi(struct seznam *, struct seznam *);
int main(void)
{
struct seznam *drugi,*prvi;
prvi = sestavi();
drugi = sestavi();
izpisi(prvi);
izpisi(drugi);
prvi = novi(prvi,drugi);
izpisi(prvi);
return 0;
}
Tako zgleda seznam.h:
#ifndef SEZNAM_H
#define SEZNAM_H
struct seznam
{
int el; /* vsebina elementa */
int fr; /* frekvenca */
struct seznam *nasl; /* kazalec na naslednji element seznama */
}
#endif
Funkcija je pa taka. Je v seznam.c in vsi include stavki so v redu:
struct seznam *sestavi()
{
int i,elem,frek;
struct seznam *p = NULL;
struct seznam **q = &p;
for(i = 1; (*q = malloc(sizeof(*p))) != NULL; i++){
printf("%d. element: ",i);
scanf("%d",elem);
printf("%d. frekvenca: ",i);
scanf("%d",frek);
if (frek == 0) break;
(*q)->el = elem;
(*q)->fr = frek;
(*q)->nasl = NULL;
q = &(*q)->nasl;
}
return p;
}
Aja, prototip sem prestavil iz seznam.h v glavni program (brezveze, vem), ampak isto je javilo tudi prej. Tako v seznam.c kot tudi v glavnem programu je javilo napako v vrstici, ki je označena (seveda v seznam.h)
Dejte mi prosim pomagat.
Trdota d.o.o.
gumby ::
Poskusi takole:
typedef struct _seznam
{
int el; /* vsebina elementa */
int fr; /* frekvenca */
struct seznam *nasl; /* kazalec na naslednji element seznama */
} seznam, *pseznam;
------------
pseznam sestavi()
{
pseznam p = NULL;
pseznam *q = &p;
.
.
.
return p;
}
typedef struct _seznam
{
int el; /* vsebina elementa */
int fr; /* frekvenca */
struct seznam *nasl; /* kazalec na naslednji element seznama */
} seznam, *pseznam;
------------
pseznam sestavi()
{
pseznam p = NULL;
pseznam *q = &p;
.
.
.
return p;
}
Trdi ::
Hvala, čeprav mislim, da sem že dobil napako, ki je prav banalna. Prepričan sem namreč, da sem vejico na koncu definicije strukture napisal, potem pa sem jo po pomoti izbrisal. No, človek se uči dokler je živ.
Kar se pa tiče te definicije jo pa moram pogledati, ker je še ne poznam. Mi jo je pa predlagalo že precej ljudi. Sem še začetnik, kot lahko opazite.
Kar se pa tiče te definicije jo pa moram pogledati, ker je še ne poznam. Mi jo je pa predlagalo že precej ljudi. Sem še začetnik, kot lahko opazite.
Trdota d.o.o.
gumby ::
Meni je tudi prevajalnik dostikrat težil pri funkcijah, ki vračajo kazalec na strukturo, zato sem vedno delal na ta način. Pač definiraš strukturo in kazalec nanj kot nov tip in potem ni več problemov. Pa še manj pisanja maš kasneje...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] kazalčni seznamOddelek: Programiranje | 3081 (2895) | MrBrdo |
» | [c++]SeznamOddelek: Programiranje | 2661 (2661) | Gundolf |
» | [C++] Linker errorOddelek: Programiranje | 1286 (1286) | Quikee |
» | [C] Povezani seznami in kazalciOddelek: Programiranje | 2563 (2130) | Good Guy |
» | [C] Narascajoce sortiranje linearnega seznamaOddelek: Programiranje | 1858 (1747) | Jebiveter |