PDA

View Full Version : [C] malloc


city_andre
05-11-2009, 15:31
void crea_contenitori(list *s,int nCont,int DimCont[]){
list t;
int i;
//DimCont=(int *)malloc(nCont*sizeof(int));
if ( (( *s ) == NULL) || ( nCont < (*s)->nCont ) ) {
t = malloc( sizeof( struct node ) );
t->nCont = nCont;
for (i=0;i<nCont;i++){
t->DimCont[i]= DimCont[i];
}
t->next = *s;
*s = t;
return ;
}
t = *s;


Questa è la funzioncina che mi crea 1 nodo ....... nel nodo devo allocare altro spazio in modo tale che in 1 singolo nodo mi devono comparire 3 valori .......

Ma sbaglio ad allocare
DimCont è 1 array
nCont è il numero di numeri che deve contenere 1 singolo nodo ........

Che fare!?!?!?

city_andre
05-11-2009, 15:38
Ah 1'altra cosa, in teoria al posto dei numeri dovrei immettere degli array, ad esempio:

3[4] 4[6], se avete idea sul come potrei fare .........

city_andre
05-11-2009, 15:44
Ok, ho allocato, ora devo capire come ins gli array al posto dei numeri

city_andre
05-11-2009, 15:55
Questi array cmq non hanno valori casuali ma valori del tipo 0[5] è fatto così:

5 è 1 valore inserito dagli utenti e mi rimarrà costante x tutto il progetto, mentre 0 è 1 valore che andrò sempre a modificare io ............

ma sinceramente non capisco come implementare questi array .....

Mesh89
05-11-2009, 19:34
Un consiglio: quando posti un codice, postalo racchiuso trai tag CODE, in questo modo non perderà l'indentazione e risulterà molto più chiaro.

Pare che tu abbia risolto il tuo problema tecnico con liste e allocazione, quindi quello non lo guardo nemmeno.
Ma è ancora il progettino dei contenitori? E l'array dovrebbe essere di contenitori, cioè coppie di valori, invece che di numeri semplici. Ho capito bene?

city_andre
05-11-2009, 22:42
Esatto ti faccio 1a spiegazione migliore:

Creo nodo, nel nodo devo inserire ad esempio i 3 valori numericiche ho inserito ottenendo dei numeri sottoforma di array

Ad esempio 1 nodo dovrebbe contenere: 0[4], 0[5], 0[9]

E lo zero è 1 valore che io posso modificare, gli altri rimangono fissi

Mesh89
06-11-2009, 10:38
Potresti usare uno struct:

struct contenitore_t {
int capienza;
int utilizzato; //bruttino come nome, vedi se te ne viene uno migliore
};

Dopodichè l'array di interi diventa un array di contenitore_t.