Will I get undefined behavior if I delete a storage space in a different function from where the space was originally allocated?
typedef struct {
unsigned int Data1;
unsigned int Data2;
unsigned int Data3;
}TData;
void CreateStorage(void)
{
TData *TempData = new TData;
DeleteStorage((unsigned char*)TempData);
}
void DeleteStorage(unsigned char *StorageToDelete)
{
delete (TData*)StorageToDelete;
}
Allocating and deleting memory from different functions is completely valid.