Rule 11.9: Does array initialization to 0 violate Rule 11.9? - Printable Version +- MISRA Discussion Forums (https://forum.misra.org.uk) +-- Forum: MISRA C (https://forum.misra.org.uk/forumdisplay.php?fid=4) +--- Forum: MISRA C:2012 and MISRA C:2023 guidelines (https://forum.misra.org.uk/forumdisplay.php?fid=21) +---- Forum: 8.11 Pointer type conversions (https://forum.misra.org.uk/forumdisplay.php?fid=166) +---- Thread: Rule 11.9: Does array initialization to 0 violate Rule 11.9? (/showthread.php?tid=1370) |
Rule 11.9: Does array initialization to 0 violate Rule 11.9? - fst-mra - 27-09-2017 Dear community, our analysis tool reports the following array initialization to violate rule 11.9 (macro NULL is the only permitted form of integer null pointer constant): uint8 myBuffer[8] = {0u}; // with "typedef unsigned char uint8;" Unfortunately, neither from the tool documentation nor from the MISRA documentation we can conclude why this "standard" construct would be non-compliant. Also we cannot see what the risk behind this deviation would be. Is this deviation false-positive? Does it introduce any portability, maintainability etc. risk? Thanks for your support. Frank Re: Rule 11.9: Does array initialization to 0 violate Rule 11.9? - misra-c - 24-10-2017 There is no null pointer constant in this example and hence no violation of rule 11.9. However there is a violation of rule 9.3 since the array is only partially initialized. Valid initializations would be: Code: uint8 myBuffer[ 8 ] = { 0u,0u,0u,0u,0u,0u,0u,0u }; |