Abdujaparov
06-04-2007, 09:48
Salve a tutti ho scritto un pezzo di codice C in cui ho dichiarato una struct in questo modo:
//Struttura che modella un router, con le sue code
typedef struct
{
int id;
Record **queueN;
int *spazioBufferN;
Record *queueR;
int spazioBufferR;
double *nrPack;
double *nrPackPersi;
} router;
Questa struttura viene inizializzata all'interno di una funzione che richiamo dentro il main. L'inizializzazione avviere in questo modo:
int i=0, j=0;
for(i=0;i<2;i++){
rout[i]=(router *)malloc(sizeof(router));
rout[i]->id=i;
rout[i]->queueN=(Record**)malloc(numeroTrasmettitori*sizeof(Record*));
rout[i]->queueR=NULL;
rout[i]->spazioBufferR=0;
rout[i]->spazioBufferN=(int*)malloc(numeroTrasmettitori*sizeof(int));
rout[i]->nrPackPersi=(double*)malloc(2*sizeof(double));
rout[i]->nrPack=(double*)malloc(2*sizeof(double));
rout[i]->spazioBufferR=0;
for(j=0; j<2;j++){
rout[i]->nrPackPersi[j]=0;
rout[i]->nrPack[j]=0;
}
}
for(j=0; j<numeroTrasmettitori; j++){
rout[0]->queueN[j]=NULL;
rout[1]->queueN[j]=NULL;
rout[0]->spazioBufferN=0;
rout[1]->spazioBufferN=0;
}
Ora quando provo a compilare mi viene dato questo errore:
C:\Documents and Settings\Angelo\Documenti\tesina>gcc -o prova2.exe *.c
Main2.c: In function `arrivoRouter':
Main2.c:181: error: `spazioBufferR' undeclared (first use in this function)
Main2.c:181: error: (Each undeclared identifier is reported only once
Main2.c:181: error: for each function it appears in.)
Main2.c:204: error: `spazioBufferN' undeclared (first use in this function)
Il codice in cui richiamo le variabili è scritto in questo modo:
if(rout[ROUTER1]->spazioBufferR==0 && dimBuffer>=spazioBufferR+pack->dim){//rigo 181
.......
if(rout[ROUTER1]->spazioBufferN[pack->send]==0 && dimBuffer>=spazioBufferN[pack->send]+pack->dim)//rigo 204
Cosa sbaglio?
Grazie ciao ciao.
//Struttura che modella un router, con le sue code
typedef struct
{
int id;
Record **queueN;
int *spazioBufferN;
Record *queueR;
int spazioBufferR;
double *nrPack;
double *nrPackPersi;
} router;
Questa struttura viene inizializzata all'interno di una funzione che richiamo dentro il main. L'inizializzazione avviere in questo modo:
int i=0, j=0;
for(i=0;i<2;i++){
rout[i]=(router *)malloc(sizeof(router));
rout[i]->id=i;
rout[i]->queueN=(Record**)malloc(numeroTrasmettitori*sizeof(Record*));
rout[i]->queueR=NULL;
rout[i]->spazioBufferR=0;
rout[i]->spazioBufferN=(int*)malloc(numeroTrasmettitori*sizeof(int));
rout[i]->nrPackPersi=(double*)malloc(2*sizeof(double));
rout[i]->nrPack=(double*)malloc(2*sizeof(double));
rout[i]->spazioBufferR=0;
for(j=0; j<2;j++){
rout[i]->nrPackPersi[j]=0;
rout[i]->nrPack[j]=0;
}
}
for(j=0; j<numeroTrasmettitori; j++){
rout[0]->queueN[j]=NULL;
rout[1]->queueN[j]=NULL;
rout[0]->spazioBufferN=0;
rout[1]->spazioBufferN=0;
}
Ora quando provo a compilare mi viene dato questo errore:
C:\Documents and Settings\Angelo\Documenti\tesina>gcc -o prova2.exe *.c
Main2.c: In function `arrivoRouter':
Main2.c:181: error: `spazioBufferR' undeclared (first use in this function)
Main2.c:181: error: (Each undeclared identifier is reported only once
Main2.c:181: error: for each function it appears in.)
Main2.c:204: error: `spazioBufferN' undeclared (first use in this function)
Il codice in cui richiamo le variabili è scritto in questo modo:
if(rout[ROUTER1]->spazioBufferR==0 && dimBuffer>=spazioBufferR+pack->dim){//rigo 181
.......
if(rout[ROUTER1]->spazioBufferN[pack->send]==0 && dimBuffer>=spazioBufferN[pack->send]+pack->dim)//rigo 204
Cosa sbaglio?
Grazie ciao ciao.