|
#include <iostream>
using namespace std;
int **ptr;
int main ()
{
ptr = new int *[3];
/*
Statement is read as: "ptr stores the base address of an array of three pointers to an int or int array". More on this in section on "Deciphering Pointer Declarations".
*/
for(int i=0;i<3;i=i+1)
{
*(ptr + i) = new int[4];
}
/*
The above loop can also be replaced with:
ptr = new int[3][4];
*/
/*
Now we can manipulate the allocated memory.
*/
for(int i=0;i<3;i=i+1)
{
for(int j=0;j<4;j=j+1)
{
*(*(ptr+i)+j) = i + j;
/*
This can also be written as:
ptr[i][j] = i + j;
*/
cout << "ptr[" << i << "][" << j << "] = " << ptr[i][j]; cout << "\n";
}
}
/*
Free the allocated memory now. The number of delete statements must match number of new statements. This is merely a copy-paste of the previous section, where new operator has been replaced with delete.
*/
for(int i=0;i<3;i=i+1)
{
delete[] *(ptr+i);
}
delete[] ptr;
return (0);
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.