Quote Originariamente inviata da MaledettoC Visualizza il messaggio
numobj viene incrementato ogni volta. quindi come nel mio caso ci sono 3 oggetti, 2 rettangoli e 1 immagine , non capisco perchè (Picture*) puntObj[0] abbia gli stessi valori di (Rettangolo*) puntObj[0] . Perchè il puntatore punta alla stessa area di memoria puntObj[0]? e quindi poi prende i valori letti e li mette nella struttura indicata dal puntatore ? Ma se volessi leggere le aree che ho allocato? AIUTOOO mi sto perdendo
C'è un po' di confusione ... Se leggi in memoria dei dati secondo una struttura, il puntatore lo devi usare coerentemente. Ovvero se i primi due puntatori puntano a strutture Rettangolo allora dovrai utilizzare puntObj[0] e puntObj[1] SEMPRE come puntatori a Rettangolo (ovvero Rettangolo *). Dato che l'ultimo puntatore l'hai usato per puntare alla struttura Picture dovrai usare puntObj[2] SEMPRE come puntatore a Picture (ovvero Picture *).Ma non ha senso usare un puntatore che punta ad un certo tipo di struttura come puntatore ad un'altra ...