Code:#include <iostream>
class foo{
void *a;
public:
foo(){
a = malloc(10);
std::cout << "baz" << std::endl;
}
foo(int size){
a = malloc(size);
std::cout << "bar" << std::endl;
}
~foo(){
free(a);
}
};
void bar()
{
foo x(5);
}
void baz()
{
foo *y = new foo;
delete(y);
}
int main()
{
bar();
baz();
return 0;
}
I presume that the destructor in this case will destroy x when we are leaving the scope of bar, eventhough it's allocated on the heap, but what happens with y in baz where I use new? The constructor presumably takes care of the allocation, is the whole object a bit larger that the malloced memory in this case?
Is there something else besides malloc I can use here?