![]() |
![]() |
0314 | ![]() |
||||
![]() | |||||||
| Pointers | REFERENCE - ISO:C90-6.3.4 Cast Operators - Semantics | ||||||
An expression of type 'pointer-to-object' is being cast to type 'pointer-to-void'. 'void pointers' should be used with care. A 'pointer-to-object' can always be converted safely to a 'pointer-to-void', but the reverse is not true because the 'pointer-to-object' may have stricter alignment requirements. For example:
/*PRQA S 2017,2211,3198,3199,3203,3227,3408 ++*/
extern void foo(unsigned char * puc)
{
void * pvd;
unsigned int * pui;
pui = (unsigned int *) puc; /* Messages 0310 and 3305 - dangerous */
pvd = (void *) puc; /* Message 0314 */
pvd = puc; /* Message 0315 */
pui = (unsigned int *) pvd; /* Message 0316 - dangerous */
pui = pvd; /* Message 0317 - dangerous */
}
See also:
![]() | ||
| QA·C Source Code Analyser 8.1.2
© 2013 Programming Research. www.programmingresearch.com | Personality Groups | Glossary | Message Index | Contents |