I don't understand some old C array concatenation -
i don't understand syntax in old c
program, , not set test code see does. part confused concatenation array. didn't think c handle auto-typecasting that, or making difficult in head being friday afternoon...
char wrkbuf[1024]; int r; //some other code //below, vrec 4 byte struct memcpy( &vrec, wrkbuf + r, 4 );
any idea happen here? wrkbuf
become when concatenate or add int it?
wrkbuf + r
same &wrkbuf[r]
essentially wrkbuf
when used in expression wrkbuf + 4
"decays" pointer first element. add r
it, advances pointer r
elements. i.e. there's no concatenation going on here, it's doing pointer arithmetic.
the memcpy( &vrec, wrkbuf + r, 4 );
copies 4 bytes wrkbuf array , starting @ r
th element memory space of vrec
Comments
Post a Comment