PDA

Visualizza la versione completa : [C] errore creazione albero ABR


SpecialOne1992
26-06-2012, 10:00
Ragazzi sarà un errore banale ma non lo capisco anche perché sono sicuro di seguire alla lettera le slides della lezione. ma comunque ecco quello che faccio
fuori dal main dichiaro la struttura albero e le funzioni di creazione in questo modo
struct albero{
int inf;
struct albero*sx;
struct albero*dx;
};

struct albero*crea_abr(void);
void inserisci_nodo(struct albero**,int); nel main mi dichiaro una variabile radice e richiamo la funzione crea_abr
radice=crea_abr(); e poi dentro la funzione eseguo questi procedimenti
struct albero*crea_abr(void){
struct albero*q=NULL;
int x;
printf("inserisci elemento nell'albero premi 0 per terminare\n");
do{
scanf("%d",&x);
if(x!=0) inserisci_nodo(&q,x);
}
while(x!=0);
return q;
}

void inserisci_nodo(struct albero**q,int x){
if(*q==NULL){
*q=(struct albero**)malloc(sizeof(struct albero *))
(*q)->inf=x;
(*q)->sx=NULL;
(*q)->dx=NULL;
}
else{
if(x<=(*q)->inf) inserisci_nodo(&((*q)->sx),x);
else inserisci_nodo(&((*q)->dx),x);
}
} ma all'atto di compilare ho questo errore:
In function `void inserisci_nodo(albero**, int)':
linea 42 `malloc(12u)' cannot be used as a function

oregon
26-06-2012, 10:15
Alla fine della linea della malloc manca il ;

Ma ci sono altri errori.

SpecialOne1992
26-06-2012, 13:04
Originariamente inviato da oregon
Alla fine della linea della malloc manca il ;

Ma ci sono altri errori.

immaginavo fosse un errore stupido.. mi ha tratto in inganno quello che mi diceva il compilatore... mah poi quali altri errori ci sarebbero scusa?

Scara95
26-06-2012, 13:54
Prova a compilare e leggi gli errori...
Poi casomai usa un debugger...

oregon
26-06-2012, 14:42
Originariamente inviato da SpecialOne1992
immaginavo fosse un errore stupido.. mi ha tratto in inganno quello che mi diceva il compilatore... mah poi quali altri errori ci sarebbero scusa?

Te li avrei già detti nel mio messaggio precedente ... spero che tu ci arrivi da solo (almeno agli errori ...) ...

SpecialOne1992
26-06-2012, 15:05
Originariamente inviato da oregon
Te li avrei già detti nel mio messaggio precedente ... spero che tu ci arrivi da solo (almeno agli errori ...) ...
questo lo immaginavo ;) ma siccome facendo quella correzione del ; adesso mi compila e non mi segna più nessun errore non saprei proprio dove andarli a cercare. Tra l'altro l'implementazione l'ho seguita passo passo dalle slides della lezione :confused:

oregon
26-06-2012, 15:15
Nessun errore ? Sicuro ?

SpecialOne1992
26-06-2012, 15:53
Originariamente inviato da oregon
Nessun errore ? Sicuro ?
si sicuro il compilatore non mi segnala nulla e il programma va in esecuzione

oregon
26-06-2012, 16:37
Hai salvato e ricompilato?

Ho provato con Dev e ho questo errore

"cannot convert `albero**' to `albero*' in assignment "

nella riga del malloc ... cosa che dovresti avere anche tu (se stiamo utilizzando lo stesso codice).

SpecialOne1992
26-06-2012, 17:10
Originariamente inviato da oregon
Hai salvato e ricompilato?

Ho provato con Dev e ho questo errore

"cannot convert `albero**' to `albero*' in assignment "

nella riga del malloc ... cosa che dovresti avere anche tu (se stiamo utilizzando lo stesso codice).

non avrei motivo di usare un codice diverso. si ho salvato e ricompilato e non ottengo nessun errore.

Loading