I read the below piece of information in a microsoft article;
https://support.microsoft.com/en-us/kb/44463
The text below presents an example of a common programming mistake, that is, confusing an array and a pointer declaration: Consider an application divided into several modules. In one module, declare an array as follows:
signed char buffer[100];
In another module, declare the following variables to access the array:
extern signed char *buffer; // FAILS extern signed char buffer[]; // WORKS
If you view the code in the CodeView debugger, it indicates that the
*buffer
declaration produces a different address than thebuffer[]
declaration does.
But I can't understand why we cannot access that array using
*buffer
and we can access it usingbuffer[]
.Someone please explain me what is the difference between those two types?