tu allochi memoria e salvi il puntatore in posizione numObj, però incrementandolo subito dopo vai a fare il cast con il "puntatore" in posizione numObj+1 ,che ancora impostato e non si sa dove va a puntare
codice:puntObj[numObj] = malloc(sizeof(Rettangolo)); // numObj = 0, puntObj[0] punta alla memoria allocata if (puntObj[numObj] != NULL ) numObj++; // così diventa 1 puntRect = (Rettangolo*) puntObj[numObj]; // numObj = 1 fai il cast con puntObj[1] .... sicuro che contiene un riferimento valido? puntRect -> ObjID = 2; //puntRect a cosa punta?

Rispondi quotando