New 指针问题,基础不太好。。
我这样定义了一个结构体用来传递指针:
struct NodeParam{ CListCtrl* pList; CStrig str;};CArry <NodeParam*, NodeParam*> m_Node;
CListCtrl* list = New CListCtrl;
NodeParam *pNode;pNode->pList = list;pNode->str = _T("");m_Node.Add(pNode);NodeParam *pNode = new NodeParam;
for(){ NodeParam* pNode = m_Node.getat(i); CListCtrl* p = pNode->pList; delete p; delete pNode;}NodeParam::NodeParam() : pList(NULL), str(_T("")){}NodeParam::NodeParam(CListCtrl *p, CString s) : str(s){ pList = p;}
[解决办法]
楼上几位说的对
你可以用CPtrArray
[解决办法]
像int,double这种数据,是从栈上分配的,new个指针,是从堆上分配
[解决办法]
可以赋值啊。
NodeParam obj;
NodeParam *pNode = &obj;
[解决办法]
是这样的:NodeParam *pNode;
pNode->pList = list;
错误并不是说pNode不可以直接赋值。pNode->pList = list语句的意思是:把pNode所指向的NodeParam 的空间里的pList赋值。但是现在pNode指向的东西却还不存在。所以更加无法赋值了。
你明白了吗?