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

Explain telnet, Explain Telnet Telnet is a Remote Login.

Explain Telnet Telnet is a Remote Login.

Explain a schematic diagram of thousand line exchanges, Using a combination...

Using a combination of uniselectors and two motion selectors draw a schematic of thousand line exchanges. The schematic diagram for such an exchange is demonstrated in Fig. All

Explain disadvantage of optimal page replacement algorithm, Explain Disadva...

Explain Disadvantage of Optimal Page Replacement Algorithm Optimal page replacement algorithm cannot be implemented in the general purpose operating system as it is impossible

Interrupt signal interconnection network (isin), Interrupt Signal Interconn...

Interrupt Signal Interconnection Network (ISIN) When a processor needs to send an interruption to another processor, then this interrupt initial goes to ISIN, through which it

Define side tone is essential in telephone communication, A certain amount ...

A certain amount of side tone is essential in telephone communication. Ans: It is true that a specific amount of side tone is necessary in telephone communication.

What is typical storage hierarchy, Q. What is typical storage hierarchy? ...

Q. What is typical storage hierarchy? A typical storage hierarchy is displayed in Figure above. Though Figure shows only block diagram however it includes storage hierarchy:

Multiple stack, how to implement the multiple stack

how to implement the multiple stack

A digital signature, A digital signature is   encrypting information

A digital signature is   encrypting information

Draw the logic circuit of Decimal to BCDencoder, What is an encoder? Draw t...

What is an encoder? Draw the logic circuit of Decimal to BCD encoder and explain its working. Ans. Encoder: It is a combinational logic circuit which converts alphanumeric ch

Identify state as shifting register content to left by 1 bit, Shifting a re...

Shifting a register content to left by one bit position is equivalent to ? Ans. Multiplication by two is equivalent while shifting register content to left by one bit position.

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