Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 11.3
hello guys

i've a problem. i'm not sure if the following code is compliant to the Rule 11.3:

typedef struct SomeHeaderType
   uint8_t type;
   uint32_t timestamp;
   uint16_t some_attribute;

void foo(uint8_t *buffer_ptr)
   SomeHeaderType *headerPtr = (SomeHeaderType*)buffer_ptr;
   if(headerPtr->type == 3)
      uint16_t attribute = headerPtr->some_attribute;

is it allowed to cast a 8-bit buffer pointer to a struct pointer? from my point of view, this code is not compliant, but i have some code examples here that do this and the code suggests to be MISRA conform...

thanks for clarification.
You are correct in saying that the cast from "pointer to unsigned 8-bit" to "pointer to struct" is not compliant with rule 11.3.
Posted by and on behalf of the MISRA C Working Group

Forum Jump:

Users browsing this thread: 1 Guest(s)