adesso devo tramite puntatori gestirlo dinamicamente:codice:struct materia{ int *punt; int i; };
ma non va, qualcuno sa dirmi perché?codice:struct materia *libretto=malloc(sizeof(int)*2);
adesso devo tramite puntatori gestirlo dinamicamente:codice:struct materia{ int *punt; int i; };
ma non va, qualcuno sa dirmi perché?codice:struct materia *libretto=malloc(sizeof(int)*2);
struct materia{
int *punt;
int i;
};
typedef materia* Materia;
Materia *libretto;
libretto= (Materia*) malloc(sizeof(materia));
Debian Sarge 3.01a
Slackware 10.2
Cosa non va:
1) La funzione malloc restituisce un puntatore ad oggetto generico (void *) che deve adattato con un casting, come suggerisce Fabiuz, in questo modo
2) Tu assegni con quella malloc lo spazio necessario per due interi: per prima cosa, non è detto che la dimensione di una struttura sia la somma delle dimensioni dei elementi, inoltre, nella struttura hai dichiarato un puntatore ad intero ed un intero, per cui lo spazio assegnato non coinciderà sicuramente.codice:mia_struct * dato = (mia_struct *) malloc (sizeof mia_struct);
Saluti
![]()