这里是讲解手动分配地址方式:
1.正确方法:
#include <iostream>
using namespace std;
void main()
{
int *p=new int;
int *q;
cin>>*p;
while(*p!=0)
{
cout<<p;//输出的地址是随机的,符合设计要求
q=new int;//new是C++中的,和C中的malloc效果一样
p=q;
cin>>*p;
}
cout<<*p<<endl;
}
可以进行随机的地址分配
/////////////////////////
2.错误方法:
#include <iostream>
using namespace std;
void main()
{
int *p=new int;
cin>>*p;
while(*p!=0)
{
cout<<p;//输出的地址是连续的,不符合设计要求
p++;
cin>>*p;
}
cout<<*p<<endl;
}
这里的地址分配是连续的,像数组那样连续的地址分配,这对程序不合理,运行出错
(作者:Lasuer)