帮忙看看内存是怎么分配的 thx
//帮我解释解释这段代码的内存是怎么分配的
struct Pos{
DWORD x;
DWORD y;
};
CArray<Pos, Pos&> m_APos;//??定义m_APos的时候 会在全局数据区分配空间
void setPos() {
Pos pos; //??在堆栈或者动态内存堆上分配内存
int a = 0; //??在全局数据区分配内存 还是动态内存区
pos.x = 1; //??赋值 如果不是1 而是一个局部变量会怎么样 x的值会是个什么值
pos.y = 1;
m_APos.Add(pos); //??是把pos这个struct整个结构拷贝过去 还是m_APos里面有一个指向pos的指针
//??pos怎么释放的
}
//如果换成指针的话
CArray<Pos, Pos&> *m_pAPos = new CArray<Pos, Pos&>[10];
//??定义m_pAPos的时候 会在全局数据区分配空间 返回一个指针
void setPos1() {
Pos *pos = new Pos();; //??在堆栈或者动态内存堆上分配内存
int a = 0; //??在全局数据区分配内存 还是动态内存区
pos->x = 1; //??赋值 如果不是1 而是一个局部变量会怎么样 x的值会是个什么值
pos->y = 1; //??是不是一个指向变量的指针 那这个变量会不会被释放
m_pAPos->Add(*pos); //??是把pos这个struct整个结构拷贝过去 还是m_pAPos里面有一个指向pos的指针
//??pos怎么释放的 会不会pos释放了 而m_pAPos元素还在指向pos
}
晕头转向 望指点