指針應該選擇什麼樣的地址分配方法?
這裡是講解手動分配地址方式:
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;
}
這裡的地址分配是連續的,像數組那樣連續的地址分配,這對程序不合理,運行出錯