0
我正在做一些实验来理解cpp中的realloc函数。 这是我的代码了解realloc
#include <iostream>
#include <stdlib.h>
using namespace std;
class node
{
public:
int value;
int count;
node(void)
{
count=5;
}
};
int main(int argc, char const *argv[])
{
node **n=(node**)malloc(3);
for(int i=0;i<3;i++)
{
n[i]=new node();
cin>>n[i]->value;
}
n=(node **)realloc(n,5);
n[3]=new node();
cin>>n[3]->value;
n[4]=new node();
cin>>n[4]->value;
for(int i=0;i<5;i++)
{
cout<<n[i]->value<<"\t"<<n[i]->count<<endl;
}
return 0;
}
当我输入值,被印刷一致,除了第一个所有节点,其被打印的一些地址和零值。
这是怎么发生的? 在此先感谢!
不要用C'malloc'或'realloc' ++。它们用于C,而内部的'new'通常(但是与实现有关)调用'malloc'(当然'delete'会调用'free'')。在C++中只使用'new'&'delete',最好隐式地使用*智能指针* –
为什么这个问题被投下来了? – Kam
@Kam可能是因为这不是C++ –