How is a multidimensional array defined pointer, Computer Engineering

Assignment Help:

How is a multidimensional array defined in terms of a pointer to a collection of contiguous arrays of lower dimensionality ?

C does not have true multidimensional arrays. However, because of the generality of C's type system, you can have arrays of arrays.

Here is a two-dimensional array, although the techniques can be extended to three or more dimensions.

int a2[5][7];

Formally, a2 is an array of 5 elements, each of which is an array of 7 ints. Thus a two dimensional array, for example, is actually a collection of one dimensional arrays. Therefore, we can define a two-dimensional array as a pointer to a group of contiguous one dimensional arrays. A two dimensional array declaration can be written as

Int (*a2)[7];

We need parenthesis (*a2) since [] have a higher precedence than * So:

int (*a2)[7]; declares a pointer to an array of 7 ints.

int *a[7]; declares an array of 7 pointers to ints.

This concept can be generalized to higher dimensional arrays; that is

data - type (*variable name) [expression1][expression2].....[expression n];

If we don't know how many columns the array will have, we'll clearly allocate memory for each row (as many columns wide as we like) by calling malloc, and each row will therefore be represented by a pointer. To keep track of those pointers, we want to simulate an array of pointers, but we don't know how many rows there will be, either, so we'll have to simulate that array (of pointers) with another pointer, and this will be a pointer to a pointer.

This is best illustrated with an example:

#include

int **array;

array = malloc(nrows * sizeof(int *));

if(array == NULL)

{

fprintf(stderr, "out of memory\n");

exit or return

}

For (i = 0; i < nrows; i++)

{

array[i] = malloc(ncolumns * sizeof(int));

if(array[i] == NULL)

{

fprintf(stderr, "out of memory\n");

exit or return

}

 


Related Discussions:- How is a multidimensional array defined pointer

What are null values, What are null values? If the value of a field in ...

What are null values? If the value of a field in a table is indeterminate or unknown, it is known as a null value.

Describe about the layered computer design, Describe about the Layered comp...

Describe about the Layered computer design Introduction Layered computer design focuses on computer design. It uses top-down, layered approach to design and also to improve

Hypothetical reliable data transfer protocol, the c code for hypothetical r...

the c code for hypothetical reliable data transfer protocol

The values 15 and 11 can also be defined by variable, In the statement Writ...

In the statement Write:/15(10) lfa1-lifnr. The values 15 and 11 can also be defined by variable. No, the value of 11 nad 15 is not described by variable.

Explain about microsoft access, Microsoft access name has been transformed ...

Microsoft access name has been transformed to Microsoft office access. This software incorporates relational database management system which joins GUI (graphical user interface) w

Cache simulater, Requirements You are required to program (in a high l...

Requirements You are required to program (in a high level language such as C, C++, Java) and implement a cache simulator which will have the following inputs and outputs:-

Why generalization is very strong, Even while Generalization satisfies Stru...

Even while Generalization satisfies Structural, Interface, Behaviour properties. It is mathematically very strong, as it is Antisymmetric and Transitive. Antisymmetric: employe

What is the principle of locality, What is "the principle of locality"? ...

What is "the principle of locality"? It's the nature of the processes that they refer only to the small subset of the total data space of the process. I.e. the process frequ

Define keyword and identifiers, Q. Define Keyword and Identifiers? Key...

Q. Define Keyword and Identifiers? Keyword:   A keyword is a statement which defines nature of that statement. If statement is a directive then keyword would be the title of t

Input device used in computer system, Input device used in computer system:...

Input device used in computer system: An input device is typically a mouse or keyboard, the input device is the conduit through which data and instructions enter a computer. A

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd