|C Tutorial||Arrays and pointers|
Advanced C Arrays
Pointer Style and strcpy()
Pointer Type Effects
Arrays and Pointers
Array Names Are Const
Advantages of being in the heap
Disadvantages of being in the heap
One effect of the C array scheme is that the compiler does not distinguish meaningfully
between arrays and pointers-- they both just look like pointers. In the following example,
the value of intArray is a pointer to the first element in the array so it's an (int*).
The value of the variable intPtr is also (int*) and it is set to point to a single integer
i. So what's the difference between intArray and intPtr? Not much as far as the
compiler is concerned. They are both just (int*) pointers, and the compiler is perfectly
happy to apply the  or + syntax to either. It's the programmer's responsibility to ensure
that the elements referred to by a  or + operation really are there. Really its' just the
same old rule that C doesn't do any bounds checking. C thinks of the single integer i as
just a sort of degenerate array of size 1.
intPtr = &i;
intArray = 13; // ok
intPtr = 12; // odd, but ok. Changes i.
intPtr = 13; // BAD! There is no integer reserved here!
These bytes exist, but they have not been explicitly reserved.
They are the bytes which happen to be adjacent to the
memory for i. They are probably being used to store
something already, such as a smashed looking smiley face.
The 13 just gets blindly written over the smiley face. This
error will only be apparent later when the program tries to
read the smiley face data.
Want To Know more with
Contact for more learning: webmaster@freehost7com