Let us reuse the same example as in the constructor example.
struct X
{
int i;
float f;
char a[20];
};
Now, let us consider the use of a variable of struct X type.
{
struct X myX;
// ... code to initialize and use myX
}
At the end of this block of code, nothing special happens. The storage
that belongs to myX is ``deallocated'', but nothing else happens.
If there is any clean up to perform, that clean up code needs to be
invoked explicitly, like the following:
{
struct X myX;
// ... code to initialize and use myX
X_cleanup(&myX);
}
It is a bit too early to discuss the kind of clean-up code that a program may need to perform.