C++编程问题 指针

来源:百度知道 编辑:UC知道 时间:2024/06/19 18:20:48
下面的这个程序调试都可以通过,但一运行就出错,请求高手指教,谢谢。

#include "stdafx.h"
#include <iostream>
#include "vector"
using namespace std;
using std::vector;

struct CTNode{
vector<int> mynode;
//int *mynode;
int nTSize;
};
/*
CTNode::CTNode()
{

}
CTNode::~CTNode()
{

}

void CTNode::ste(int *p,int size)
{

for(int i=0;i<size;i++)
mynode.push_back(p[i]);
//mynode[i]=p[i];
for(i=0;i<size;i++)
cout<<mynode[i]<<' ';
}*/

class CHTree //树
{
public:
CHTree();
virtual ~CHTree();
CTNode *a;

int size;
public:

void CTInsert(/*CHTree *T,*/int *node,int nSize);

};
CHTree::CHTree()
{

a=(CTNode *)malloc(sizeof(CTNode));
if(a==NULL)
{printf("overflow!\n");

这个函数改一下
CHTree::CHTree()
{

a=new CTNode; //这里!!
if(a==NULL)
{printf("overflow!\n");
exit(1);
}

size=0;
}
因为CTNode 里面有vector ,你不初始化不行
所以需要“new”来初始化他