Más contenido relacionado
La actualidad más candente (20)
Similar a OOP 2012 - Hint: Dynamic allocation in c++ (20)
OOP 2012 - Hint: Dynamic allocation in c++
- 4. Example 2
#include<iostream>
using namespace std;
int main() {
int** a; int n,m;
cin >> n; cin >> m;
a=new int* [n];
for(int i=0;i<n;i++) a[i]=new int [m];
for(int i=0;i<n;i++) for(int j=0;j<m;j++) a[i][j]=i+j+1;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) cout << a[i][j] << " ";
cout << endl;
}
for(int i=0;i<n;i++) delete [] a[i];
delete [] a;
return 0;
}
- 6. Example 3
#include<iostream>
using namespace std;
int main() {
int* a;
int n,m;
cin >> n;
cin >> m;
a=new int [n*m];
int** b;
b=new int* [n];
for(int i=0;i<n;i++) b[i]=&(a[n*i]);
for(int i=0;i<n;i++) for(int j=0;j<m;j++) b[i][j]=i+j+1;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) cout << b[i][j] << " ";
//cautious with CodeBlocks !
cout << endl;
}
delete [] b;
delete [] a;
return 0;
}
- 8. Example 4
// Headers emitted, cautious with CodeBlocks !
void* new2d(int n,int m,int size) {
void **a = new void* [m*sizeof(void*) + n*m*size];
for(int j=0;j<m;j++) a[j] = ((char *)(a+m)) + j*n*size;
return a;
}
int main() {
int** a;
int n,m;
cin >> n;
cin >> m;
a = (int**)new2d(n,n,sizeof(int));
for(int i=0;i<n;i++) for(int j=0;j<m;j++) a[i][j]=i+j+1;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) cout << a[i][j] << " ";
cout << endl;
}
delete [] a;
return 0;
}
- 10. Example 5
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n,m;
cin >> n;
cin >> m;
vector<vector<int> > a(n, vector<int>(m));
for(int i=0;i<n;i++) for(int j=0;j<m;j++) a[i][j]=i+j+1;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) cout << a[i][j] << " ";
cout << endl;
}
return 0;
}