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

++ c, how to find the integral of a function represented by collection of e...

how to find the integral of a function represented by collection of experimental data

Explain the life cycle of java server pages, Discuss the life cycle of JSP....

Discuss the life cycle of JSP. A JSP (JavaServer Pages) page services requests like a servlet. Therefore, the life cycle and many of the abilities of JSP pages (particular in t

Difference among activity and sequence diagram, a. Activity diagram: Activi...

a. Activity diagram: Activity diagram is used for functional modelling. Captures the process flow. b.  Sequence diagram :  Sequence diagram is  used for dynamic modeling.

Name the modes of 8255 programmable peripheral interface, What are the diff...

What are the different modes in that 8255 Programmable Peripheral Interface (PPI) can operate?  24 I/O lines in 3-8-bit port groups - A, B, C A, B can be 8-bit input

Programs portable on unix, How do you make programs portable on Unix and Do...

How do you make programs portable on Unix and Does under such circumstances? Constructors are invoked themself when the object is created for a class. There may be any number o

Performance instrumentation, The performance instrumentation states on how ...

The performance instrumentation states on how to efficiently gather information about the computation of the parallel computer. The process of instrumentation mainly attempts to ca

The functions islower() and tolower(), Distinguish among the functions islo...

Distinguish among the functions islower() and tolower().   islower( ) and tolower( ): islower(c) is a character testing function described  in ctype.h header file. This

Define wait protocol, Q. Define Wait protocol? The wait protocol is use...

Q. Define Wait protocol? The wait protocol is used for resolving conflicts that arise due to some multiprocessors requiring same resource. There are 2 kinds of wait protocols:

Difference between absolute and relative path, What is the difference betwe...

What is the difference between absolute and relative path name of a file? Absolute path name: This is listing of the directories and files from the root directory to the i

Illustrate working of rubber dome keyboards, Q. Illustrate working of rubbe...

Q. Illustrate working of rubber dome keyboards? Rubber Dome: In rubber dome keyboards both positioning and contact are controlled by a puckered sheet of elastomer that is a s

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