Buongiorno oregon,
un altro problemino...
Ho tre classi figlie di Poligono..
In ognuna di queste ho la calcolaArea()
codice:class Triangolo: public Poligono { public: Triangolo(); double calcolaArea(); }La utilizza in una funzione in cui mi devo riempire un array così:codice:class Poligono { ... virtual double calcolaArea(){ } }
Mi da Access Violation come errore in fase di esecuzione del programma...codice:.. if(!aree) aree=(double*) calloc(cont,sizeof(double); for(..) aree[i]=poligoni[i].calcolaArea();
Da quanto ho capito in fase di Debug, il problema è alla riga
codice:aree[i]=poligoni[i].calcolaArea();
Sempre con il debug, quando hai l'errore, dovresti vedere quanto vale
i
aree[i]
poligoni[i]
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ho fatto una prova con una banale funzione:
richiamandola:codice:void prova() { int i; i=0; ShowMessage("PROVA"); }
poligoni[i].prova();
Non gli piace manco questa...
Inizio a pensare che sia un problema di compilatore![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
L'ho eseguito in Debug e non una sola volta!!
Gia all indice i 0 non funziona...
Gli elementi di poligoni:
codice:if(!poligoni) poligoni=(Poligono*) calloc(1,sizeof(Poligono)); else{ poligoni=(Poligono*) realloc (poligoni,(cont+1)*sizeof(Poligono)); poligoni[cont].init(); } poligoni[cont].setTipo(RadioGroupTipo->ItemIndex); poligoni[cont].set..... ... ... cont++;