将malloc转换为struct的新c ++

时间:2014-06-18 13:29:25

标签: c++ memory-management malloc

我有这个结构:

struct problem
{
int length;
struct node **x;
};     

我创建了这个结构的结构,如下所示:

struct problem prob;

我可以用C:

这样做
prob.x = Malloc(struct node *,prob.length);

但我如何用new以c ++风格完成?为什么?

2 个答案:

答案 0 :(得分:2)

在C ++中,可以用它来实现。

std::vector<node *> problem(length);

您展示的代码有效地模拟了vector的一小部分功能。即,一个类似于数组的容器,它知道它的大小。

答案 1 :(得分:0)

好的,这段代码可能有用,请注意你不再持有指向指针的指针,而是一个简单的数组 - 这可能适用于你想要做的事情,也可能不适用:

typedef struct tagnode
{
  ...
} node;

typedef struct tagproblem
{
int length;
node *x;

tagproblem(int len) : length(len)
 {
  x = new node[length];
 }
~tagproblem()
 {
  delete [] x;
 }
} problem;

//Now create...
problem = new problem(2);