动态内存分配
1.new 和delete
double* pvalue=NULL;
pvalue=new double;
*pvalue=9999.0;
pvalue=new double(9999.0);
delete pvalue;//释放运算符占用的字符
数组动态分配内存 char *pstr;
pstr=new char[20];
delete [ ] pstr;
pstr=0;//释放内存后,设置该指针为0;
马虎惹来的麻烦
#include <iostream>
#include <iomanip>
using std::cin;
using std::cout;
using std::endl;
//using std::setw;
int main()
{
long* pprime=0;
long trial=5;
int count=3;
int found=0;
int max=0;
cout<<"输入一个小于4的数字"<<endl;
cin>>max; //5
if (max<4)
{
max=4;
}
pprime=new long[max];
*pprime=2;
*(pprime+1)=3;
*(pprime+2)=5;
do
{
trial +=2; //7
found=0;
int a=0;
for (int i=0;i<count;i++)//3
{
//found=(trial % *(pprime+i))==0;//1,1,2
//if(found)
// //cout<<"duan"<<endl;
// break;
if ((trial % *(pprime+i))==0)
{
break;
}
else if((trial % *(pprime+i))!=0&&i==count-1)
{
a=1;
}
}
//if (found!=0)
//{
if (a==1)
{
*(pprime + count++)=trial;//7
}
//
//}
} while (count<max);
for (int i=0;i<max;i++) //5
{
if (i %5==0)
{
cout<<endl;
}
cout<<std::setw(10)<<*(pprime+i);
}
delete [] pprime;
pprime=0;
cout<<endl;
return 0;
}