在做一道算法題時,需要通過輸入確定數組大小,此時不能通過
cin>>n;
int v[n];
(因爲這是靜態數組,所以需要使用動態數組):
一維:
cin>>n,
int *a=new int[n]
運行時才知道大小爲n;
注意不要忘記刪除我們new的內存
delete []a;
二維:
cin>>m>>n;
int **a=new int *[m];
for(int i=0;i<m;i++)
a[i]=new int[n];
for(int i = 0; i < m; ++i)
delete []a[i];
delete []a;
或者使用STL的vector容器
自己會擴大,不需指定初始大小
4/4補充:如果在使用數組時,想一一對應,即實際的第i個對應的值v[i],那麼在創建時注意,上界要n+1,將
v[0]賦值爲0;否則會產生野指針。這些小問題要注意下,有時候會忘記導致調試。