...
Code Block | ||||
---|---|---|---|---|
| ||||
#include <stdlib.h> struct gadget { int i; double d; char *p; }; struct widget { char *q; int j; double e; }; struct gadget *gp; struct widget *wp; gp = (struct gadget *)malloc(sizeof (struct gadget)); /* ... */ wp = (struct widget *)realloc(gp, sizeof(struct widget)); if (wp->j = 12) { /* ... */ } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
#include <stdlib.h> #include <string.h> struct gadget { int i; double d; char *p; }; struct widget { char *q; int j; double e; }; struct gadget *gp; struct widget *wp; gp = (struct gadget *)malloc(sizeof (struct gadget)); /* ... */ wp = (struct widget *)realloc(gp, sizeof(struct widget)); memset(wp, 0, sizeof(struct widget)); /* ... */ if (wp->j = 12) { /* ... */ } |
...
[Acton 2006] | "Understanding Strict Aliasing" |
GCC Known Bugs | "C Bugs, Aliasing Issues while Casting to Incompatible Types" |
GCC Manual | |
[ISO/IEC 9899:2011] | Section 6.5, "Expressions" |
[Walfridsson 2003] | Aliasing, Pointer Casts and GCC 3.3 |
...