22.7 Arrays and Pointers

Implementation-Defined Behavior for Arrays and Pointers is covered in section G.3.7 of the ANSI C Standard.

What is the type of the integer required to hold the maximum size of an array, that is, the type of the sizeof operator, size_t ? (ISO 6.3.3.4, ISO 7.1.1)

unsigned int.

What is the size of integer required for a pointer to be converted to an integral type? (ISO 6.3.4)

16 bits for dsPIC33C/E/F and dsPIC30F devices and 32 bits for dsPIC33A devices.

What is the result of casting a pointer to an integer, or vice versa? (ISO 6.3.4)

The mapping is the identity function.

What is the type of the integer required to hold the difference between two pointers to members of the same array, ptrdiff_t? (ISO 6.3.6, ISO 7.1.1)

unsigned int.