OK, I understand your problem now.
If you used that method then you'd have to cast the pointer each time you used it.
Code:
int main()
{
void *ptr;
ptr = new ONE;
((ONE*)ptr)->foo = NULL;
delete ptr;
return 0;
}
You could define a structure that had pointers to the other structures as members.
Code:
typedef struct{char* foo;}ONE;
typedef struct{char* foo;}TWO;
typedef struct{char* foo;}THREE;
typedef struct{char* foo;}FOUR;
typedef struct{char* foo;}FIVE;
typedef struct
{
ONE* one;
TWO* two;
THREE* three;
FOUR* four;
FIVE* five;
}ALL;
int main()
{
ALL* ptr = new ALL;
ptr->one = new ONE;
ptr->one->foo = NULL;
delete ptr->one;
return 0;
}