ahoj,
typedef struct {
int delka;
char *p;
} zprava;
std::queue<zprava> fronta;
Předpokládám, že když udělám
zprava neco;
neco.p = malloc(pozadovana_velikost);
fronta.push(zprava);
vytvoří se plytká kopie struktury (asi pomocí new), která se uloží do fronty. Pokud pak strukturu z fronty vyjmu
zprava cosi;
cosi = fronta.front();
fronta.pop();
free(cosi.p);
dojde k vytvoření plytké kopie v proměnné cosi a odstranění (delete) struktury z fronty. Jsou předpoklady správné?
Přestože je fronta před ukončením programu prázdná, při jeho ukončení mi CodeGuard tvrdí, že objekt nebyl odstraněn. Podle adresy je to struktura, která byla vložena do fronty. Vůbec nerozumím proč.
hu