关于全局对象和局部对象的成员初始化有关问题

求助关于全局对象和局部对象的成员初始化问题
#include <iostream>
#include <stdlib.h>

using namespace std;
class A
{
public:
A()
{
cout << "A构造" << endl;
}
virtual ~A()
{
cout << "A析构" << endl;
}
};
class B : public A
{
public:
B()
{
cout << "B构造" << endl;
}
~B()
{

cout << "B析构" << endl;

}
};
class C : public B
{
public:
C()
{
cout << "C构造" << endl;
cout << t << sizeof(t) << endl;
}
~C()
{

cout << "C析构" << endl;

}
char t[20];
};
C c;
A* b = new C();

void a()
{
C e;
}
int main()
{
a();
strcpy(new char[20], "v");
system("pause");
}


为什么全局的对象成员t[20]正确初始化了,而new的对象和函数a()里面的对象乱码?

------解决方案--------------------
一:
全局对象分配在全局数据区,在编译的时候,就能搞定。会自动初始化。
如果是局部对象,只会调用构造函数,如果你不在构造函数里面初始化自己的成员,那自己的成员就是随机的。

二:
对于全局指针也会初始化,只是只初始化指针本身(就那四字节),指针所指定的对象的初始化,和一的初始化一样,需要你自己搞定(构造函数会被自动调用)。

三:
如果全局对象有指针成员,那初始化同二。