Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MISRA2004 Rule 17.4 How to solve the Rule violation
I have an issue regarding the rule violation in which I'm using a 2D array inside a structure and apparently The Rule 17.4 says it isn't compliant. Is Declaring arryas inside a structure/union not compliant and why is it so? What exactly is the alternative for it?
Help would be appreciated ASAP. Following is the example code. Thanks in advance.

void func1(unsigned char abc);

typedef struct teststructure
    float buf[5][3];

int main()
    unsigned char abc;



void func1(unsigned char abc)
    teststruct TEST;

    float fData = 54.0;
    TEST.buf[2][1] = fData;
This is most likely a false positive from the static analysis tool you are using.
Rule 17.4 bans pointer arithmetic but in your sample you use array indexing only, so it is compliant.
I suggest contacting your tool vendors support.
There is no violation of rule 17.4.
Posted by and on behalf of the MISRA C Working Group
Question moved here to the correct location
Dr David Ward
MISRA Project Manager

Forum Jump:

Users browsing this thread: 1 Guest(s)