Arrays and pointers, Data Structure & Algorithms

C compiler does not verify the bounds of arrays. It is your job to do the essential work for checking boundaries wherever required.

One of the most common arrays is a string that is simply an array of characters finished by a null character. The value of any null character is o. A string constant is a one-dimensional array of characters terminated by a null character (\0).

For instance, consider the following:

char message[ ]= {'e', 'x', 'a', 'm', 'p', 'l','e','\0'};

Also, assume the following string that is stored in an array:


Given figure illustrates the way a character array is stored in memory. In the array each of character occupies one byte of memory and the last character is always '\0'. Note down that '\0' and '0' are not the same. The character array elements are stored up in contiguous memory locations.











                                          Figure: String in Memory

C concedes a fact that the user would employ strings very frequently and therefore provides a short cut for initialization of strings.

For instance, the string used above can also be initialized as char name[ ] = "sentence\n";

Note down that, in this declaration '\0' is not essential. C automatically inserts the null character.

Multidimensional arrays are described in the similar manner as one-dimensional arrays, apart from that a separate pair of square brackets is needed for each of subscript. Therefore a two-dimensional array will need two pairs of square brackets, a three-dimensional array will need three pairs of square brackets and so on.

In C the format of declaration of multidimensional array is given below:

data_type array_name [expr 1] [expr 2] .... [expr n];

where data_type is the type of array like char, int etc., array_name is the name of array & expr 1, expr 2, ....expr n are positive valued integer expressions.

The diagram of two-dimensional array of size 3 × 5 is illustrated in Figure



Figure: Schematic of a Two-Dimensional Array

In the particular case of a two-dimensional array, the given formula yields the number of bytes of memory required to hold it:

bytes = size of 1st index × size of 2nd index × size of (base type)

The pointers & arrays are closely associated. As you know, an array name without an index is a pointer to the primary element in the array.

Assume the following array:

char p[10];

p and &p[0] are similar because the address of the primary element of an array is the similar as the address of the array. Thus, an array name without an index produced a pointer. On the other hand a pointer can be indexed as if it were declared to be an array.

For instance, assume the following program fragment:

int *x, a [10];

x = a;

x[5] = 100;

* (x+5) = 100;

Both of the assignment statements place the 100 in the sixth element of a. In addition the (0,4) element of a two-dimensional array might be referenced in the given two ways: either through array indexing a[0][4], or through the pointer *((int *) a+4).

Generally, for any two-dimensional array a[j][k] is equivalent to:

*((base type *)a + (j * rowlength)*k)

Posted Date: 4/4/2013 6:25:35 AM | Location : United States

Related Discussions:- Arrays and pointers, Assignment Help, Ask Question on Arrays and pointers, Get Answer, Expert's Help, Arrays and pointers Discussions

Write discussion on Arrays and pointers
Your posts are moderated
Related Questions
Conversion of Forest into Tree A binary tree may be used to show an entire forest, since the next pointer in the root of a tree can be used to point to the next tree of the for

Q. Give the algorithm for the selection sort. Describe the behaviours of selection sort when the input given is already sorted.

an electrical student designed a circuit in which the impedence in one part of a series circuit is 2+j8 ohms and the impedent is another part of the circuit is 4-j60 ohm mm program

A stack is a last in, first out (LIFO) abstract data type and sequential data structure. A stack may have any abstract data type as a component, but is characterized by two fundame

How branching takes place in Instruction pipeline. Explain with suitable examples

Determine the effect of Ruby in implementation of string Ruby has a String class whose instances are mutable sequences of Unicode characters. Symbol class instances are charact

Determine the number of character comparisons made by the brute-force algorithm in searching for the pattern GANDHI in the text

1. Define the following terms in a rule-based expert system? a) Knowledge base b) Inference engine 2. What is a fuzzy rule? Explain the difference between classical and fuzzy

Elaborate the symbols of abstract data type length(a)-returns the number of characters in symbol a. capitalize(a)-returns the symbol generated from a by making its first cha

Program: Program segment for insertion of an element into the queue add(int value) { struct queue *new; new = (struct queue*)malloc(sizeof(queue)); new->value = val