| sizeof operator | Size of type operator | 
| unary-expr := sizeof ( type-id ) sizeof unary-expr | 
At compile time, the sizeof operator returns the amount of memory required to hold an object whose type is type-id or the type of unary-expr . In the latter case, unary-expr is not evaluated. The size of a type includes any padding that the compiler adds to it, so the size of an array of N elements is always equal to N times the size of a single element.
By definition, sizeof(char) is 1 , so you can think of the size of other types as multiples of the size of a character. The expression type is std::size_t .
 class point { ... }; point* p = malloc(  sizeof  (point)); point corners[] = { { 2, 4 }, {4, 2}, ..., { 42, 10 } }; const unsigned count =  sizeof  (corners) /  sizeof  (corners[0]);  expression , type , Chapter 3, <cstdlib>