hello everyone!
i have a quiz about 2D Arrays.
and i don't know how the questions might be,
can you help me :)

thank you.

PS:please correct my grammar mistakes if you see any, i'm here to learn.

thank you

well i think i do understand that 2D array is to create two spaces in memory one for row and the other for col..

No.. A 2D array will still allocate 1D block of memory.. It's just how you access this.. For example:

``````    rows = 13;
cols = 10;
int* values;
values = new int[rows*cols];

for(unsigned i=0; (i < rows); i++)
{
for(unsigned j=0; (j < cols); j++)
{
values[i*cols+j] = 0.0;
}
}
``````

We are still using a 1D block of memory, however, accessing this 1D of memory as a 2D (array).. Does this make sense/

A 2d array is declared like this:

`int values[10][20];`

It is very similar concept to an Excel spreadsheet, which has columns and rows. In the above declaration the array has 10 rows and 20 columns. What phorce illustrated above is a 1d array, not a 2d array.

thank you so much guys!
it helps.

still waiting an example of 2d array question:(

Here is an example:

A 2D array is initialised and represented as the following:

`(type) -> name - > [][]`

So as follows:

`int 2darray[100][100]`

This initialises a value of 100 rows and 100 cols note that in memory it is still a 1D block of data, the compiler, therefore, does not allocate data for rows and cols.

The following can be seen as a 2D array:

``````int main(int argc, char *argv[]) {

int vals[100][100]; // 100 rows, 100 cols

for(unsigned i=0; (i < 100); i++)
{
for(unsigned j=0; (j < 100); j++)
{
vals[i][j] = 0;

}
}
}
``````

This can also be repesented as a 1D block (example, given above) where the memory is allocated for a 1D block, however, how we access it and therefore read from it changes.

Does this make more sense? Or, is there a specific question on 2D arrays?

thanks a lot

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.18 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.