|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2008
Messaggi: 59
|
Aiutatemi a risolvere questo problema in C
Salve a tutti. Premetto che uso Visual c++ 6 poichè è il compilatore che si usa all' università, ho un problema abbastanza banale ma a cui non riesco a trovare una soluzione. Devo implementare una lista circolare e quindi ho dichiarato un nuovo tipo chiamato "nodo" che è una struttura contenente 2 campi, il campo "inf" e il campo "next". Il compilatore mi da questo errore
Codice: Codice:
error C2275: 'pnodo' : illegal use of this type as an expression see declaration of 'pnodo' Codice: Codice:
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
typedef struct nodo *pnodo;
struct nodo
{ int inf;
pnodo next;
};
main()
{ int i, N, M;
printf("Inserisci la dimensione della lista: ");
scanf("%d",&N);
printf("Digita ogni quanti nodi eliminarne uno: ");
scanf("%d",&M);
pnodo p=(pnodo)malloc(sizeof(struct nodo)); <------- ERRORE!!!
// DA QUI IN POI IL CODICE POTREBBE ESSERE ERRATO MA NON HA IMPORTANZA
pnodo x=p;
p->inf=1;
p->next=t;
for (i=2; i<=N; i++)
{ x->next=malloc(sizeof *p);
x=x->next;
x->inf=i;
x->next=p;
}
while ( x != x->next)
{ for (i=1; i<M; i++)
x=x->next;
x->next = x->next->next;
N--;
}
printf("\n%d\n", x->inf);
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Forse, ma non sono affatto sicuro, devi banalmente spostare il typedef dopo la dichiarazione della struttura nodo.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2008
Messaggi: 59
|
Già provato, stessi errori
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Strano comunque. Io uso Codeblocks con minGw e lo compila il tuo.
EDIT: ho solo definito il main con 'int main', messo un return 0 prima della graffa finale e commentato tutto quello che non serviva. Ultima modifica di ndakota : 13-11-2009 alle 13:09. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:06.


















