ciao.
ho il seguente codice:
tagLoadData* td;
td=pType->m_TagsLoadData[j];(pType=*CSapLoadType
pLoadDataArray->Add(td);
delete td;
vorrei eseguire l'operatore delete per liberare dalla memoria il td in pType->m_TagsLoadData[j], ma essendo un puntatore facendo il delete mi cancella anche il td in ploaddataarray.
E' un importazione di molti dati e vorrei cancellare dalla memoria i dati importati mano a mano che vengono immessi nell'array.
Per fare questo pero devo inserire una copia dei dati in pLoadDataArray->Add(td);
non il riferimento.
pLoadDataArray è del tipo CTypedPtrArray<CPtrArray, tagLoadData*> * pLoadDataArray)
struct tagLoadData
{
double dLen;
bool bNew; //nuovo pto di carico
}
class CSapLoadType
{
public:
CSapLoadType();
virtual ~CSapLoadType();
tagLoadData* getByID(int ID);
public:
CTypedPtrArray<CPtrArray, tagLoadData*> m_TagsLoadData;
};
Ho letto qualcosa su costruttori di copia è questo il caso?
In questo caso pero' dovrei copiare una struttura ,non un tipo(o una serie di tipi) primitivo.
Grazie.