il problema è il seguente :
devo allocare dinamicamente una zona di memoria mxn
in codice:
- Codice: Seleziona tutto
typedef struct
{
int **m;
int a;
int b;
} xxx;
void func(xxx *a,int r,int c){
int i;
a->a=r;
a->b=c;
a->m=malloc(sizeof(int *)*r);
for(i=0; i<=r; i++)
a->(*m+i)=(int *)malloc(sizeof(int)*c); /*errore*/
return ;
}
commetto un errore di sintassi , ma non riesco a capire il motivo ,
- Codice: Seleziona tutto
a->m=malloc(sizeof(int *)*r);
questa va a buon fine , quindi dovrebbe allocare spazio per un "vettore" di puntatori ad int , il problema si presenta quando voglio allocare spazio a ciascun puntatore:
- Codice: Seleziona tutto
a->(*m+i)=(int *)malloc(sizeof(int)*c);
errore ricevuto
- Codice: Seleziona tutto
error: expected identifier before '(' token
grazie a tutti.



, basta che lo usi per come lo hai allocato, quel sizeof(int) basta IMHO. Tanto è vero che il compilatore non genera né warning, né error. Poi, se fosse così, perchè alla prima malloc non è stato usato nessun casting?