int main() { int *p = 0; printf("before addr: %pn", p); p = (int *) malloc(0); printf("after addr: %pn", p); printf("sizeof: %un", sizeof(*p)); *p = 1; printf("--- %d -- this is the last statment.n", *p); free(p); }
Output
before addr: (nil)
after addr: 0x80496c8
sizeof: 4
--- 1 -- this is the last statment.
Note :
Linux
- allows a ‘read’ of the zero sized allocated memory
- allows a ‘write’ on the zero sized allocated memory
- sizeof shows an allocation of 4 bytes.
0 comments:
Post a Comment