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 is dhcp and how it works, Full form of is DHCP: Dynamic Host Control P...

Full form of is DHCP: Dynamic Host Control Protocol. It is mainly used to bound MAC Addresses of system. Especially for Wireless System.

Determine frame time and propagation time in a lan, Maximum channel utiliza...

Maximum channel utilization in a LAN is defined by frame time (t f ) and propagation time (t p ). It is defined by (A) t p /t f (B) t f /t p  (C) 1 + (t f /t p )

Show the format text in document window, Q. Show the format text in Documen...

Q. Show the format text in Document window? You can format text in Document window by setting properties in Property inspector. First, select the text you want to format and th

Define html, HTML is a Hyper text Markup Language and it is  Scripting La...

HTML is a Hyper text Markup Language and it is  Scripting Language

Example of processor arrangements, Q. Example of processor arrangements? ...

Q. Example of processor arrangements? !HPF$ PROCESSORS P (10) This initiates a group of 10 abstract processors assigning them combined name P. !HPF$ PROCESSORS Q (4, 4)

Explain the fork-join, Explain the fork-join? fork-join: It is prim...

Explain the fork-join? fork-join: It is primitives in a programming language of higher level for implementing interacting processes. The syntax is as given below: fork

Advantages and disadvantages of public-key cryptography, Advantages and Dis...

Advantages and Disadvantages of Public-key cryptography Advantages (i) Enhanced security and convenience  (ii) Electronic records may be authenticated by affixing

What problem does the namespace feature solve, Multiple providers of librar...

Multiple providers of libraries may use common global identifiers causing a name collision when an application tries to link with two or more such libraries. The namespace feature

Describe the vertical frequency or cycle, Q. Describe the Vertical Frequenc...

Q. Describe the Vertical Frequency or cycle? Like a Fluorescent lamp, the screen has to repeat same image many times per second to display an image to user. The frequency of th

What is encapsulation technique, Hiding data within the class and making it...

Hiding data within the class and making it available only by the methods. This method is used to protect your class against accidental changes to fields, which might leave the clas

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