堆的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 23:36:06
书上介绍,
动态分配可以设个默认值,
如果()内不写表示全默认为0,写了的话,就是用写的那个当默认值,而且我自己测试的话,发现,不写,输出的是个地址,写了的话,直接就编译不过去,请问是什么原因?我看网上对C++PRIMER评价都很高啊,但是,我发现这本书的代码还真有些垃圾,错的地方真不少.当然,有一部分是我理解力可能有问题吧,但是,也不会所有的都是那样的啊,不知道其他人看这本书,有没有试过他书上的代码,好多并不像他说的哪!
#include <iostream>
using namespace std;
int main()
{
int *p=new int[5]();
for(int *t=p;t!=p+5;t++)
cout<<*t<<endl;
return 0;
}

根据我的反复验证,它说得没错,而且我在c-free编译器下完美运行,在borland C下编译不通过
说明可能是编译器不支持吧.
这样试试
#include <iostream>
using namespace std;
int main()
{
int *p=new int[5](2);
//for(int *t=p;t<p+5;t++)
for(int i=0;i<5;i++)
{
cout<<p[i]<<endl;
}
return 0;
}