MISRA Discussion Forums

Full Version: MISRA2004 Rule 17.4 How to solve the Rule violation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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.
Question moved here to the correct location