what’s functin memset(score,0,sizeof score). what do it.
Refer http://www.cplusplus.com/reference/cstring/memset/ for some official details on memset.
memset(ptr, value, n) sets the first
n Bytes of memory to
value, starting at the address pointed to by
memset(score, 0, sizeof(score)) fills an array called
score is declared as an array. If
score is declared as a pointer and proper
new is done, it will work just the same) completely with
0. You can note that the data to be written is
0 and the number of bytes is
sizeof(score), which is the whole array (or the memory allocated at runtime, whichever is applicable).
Hope this helps!
the signature of the function is void * memset (void * FromPtr, int Value, size_t NumBytes );
starting from the memory location “FromPtr”, set the next “NumBytes” with the ‘byte’ representation of “Value”.
by ‘byte’ representation it means binary representation of the number truncated to 8 least significant bits. so, it means that Value = 0 and Value = 256 will initialize the memories in similar fashion.
int a; memset(a, 0, 5 * sizeof(int));
after this initialization, the binary representation of each member of a will be 000…(32 bits)
memset(a, 15, 5 * sizeof(int));
will initialize each member to ‘00001111 00001111 00001111 00001111’. This is definitely not 15! So, if you are expecting to initialize each member with 15, better run through a loop!