linux user group brescia

immagine del castello

Archivio della mailing list

Array e malloc

Maurizio Paolini paolini a dmf.bs.unicatt.it
Mar 7 Maggio 2002 13:09:47 UTC
> From: Carlo <magnifex a infinito.it>
> Subject: Array e malloc
>
> Per proseguire il discorso...
>
> Ho una struct
>
> orso {
> int cane;
> int gatto;
> char nome[20];
> }
>
> struct orso jolly[uno][due][tre];
>
> con
>
> int uno,due,tre;
>
> come faccio a dichiarare jolly come puntatore e soprattutto ad allocarlo con  
>  malloc?
>
> Per dichiararlo pensavo struct orso ***jolly e poi?

No.  Attenzione che in C gli array a piu' di una dimensione hanno comunque
un solo livello di indirezione, ovvero "jolly" e' in sostanza un puntatore
a una "struct orso".  Quindi "struct orso *jolly".

Deve essere allocata con qualcosa del tipo:

   jolly= (struct orso *) malloc (dim1*dim2*dim3*sizeof(struct orso));

dove dim1, dim2, dim3 sono i tre valori massimi dei 3 indici. 
(Pero' stai attento, e' pericoloso avventurarsi con le matrici a piu' indici:
e' facile sbagliarsi)

mp
>
> Carlo
>



Maggiori informazioni sulla lista Lug