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.

Code:
#include
void func1(unsigned char abc);

typedef struct teststructure
{
    float buf[5][3];
}teststruct;

int main()
{
    unsigned char abc;

    func1(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