/*
* Rule: MEM33-C
* Source: wiki
* Status: PASS - Should NOT trigger MEM33-C violation
*/
#include <string.h>
struct flex_array_struct {
size_t num;
int data[];
};
void func(struct flex_array_struct *struct_a,
struct flex_array_struct *struct_b) {
if (struct_a->num > struct_b->num) {
/* Insufficient space; handle error */
return;
}
memcpy(struct_b, struct_a,
sizeof(struct flex_array_struct) + (sizeof(int)
* struct_a->num));
}