C++指针指向的类变量的值忽然自动改变

C++指针指向的类变量的值突然自动改变
问题简述:
给函数传递指针变量,指针的值没变,但一旦进入函数内部,指针的值不变,指针所指的值的内容就会自动变化,基本那片内存混乱重置了。
问题背景介绍:

我写了一个类A:
如class A
{
public:
/*
其他
*/
}
A还有其他继承自 同一个接口父类 的其他同层类

另一个类B 里有一个A的指针的向量
class B
{
public:
vector<A*> v;//为了利用A等类的多态性
}
B也有其他继承自 同一个接口父类 的其他同层类

我又建立了一个B的指针的向量
vector<*B> C;//为了利用B等类的多态性

有一个函数
void D(B* C);

问题是:

当我调用
D(C[0]); //已经做了必要的其他运行,非空
的时候,调试
时一旦进入函数D C[0]的地址没变,C[0]->v[0]的地址没变,即传递过程中地址都没改变,这里C[0]->v[0]是指向A类的地址,但这个地址所指向的A的内容完全变了,成了混乱的内容。
一旦调用D函数进入D的内部时候,地址没变,但所指向的内容突然就会自动改变。


各路大神帮帮我吧~


------解决方案--------------------
描述的比较纠结啊,绕里绕去的。
能不能贴代码? 关键代码
------解决方案--------------------
请问你这指针指向的内容是局部变量的内容还是什么?
------解决方案--------------------
探讨
B里的vector<A*>是调用B.createA()方法产生的。