@Nathon: that is exactly wrong. sizeof arr yields the size in bytes of the entire array, while sizeof &arr yields the size of a pointer to that array. 6.3.2.1 para 3: Except when it is the operand of the sizeof operator or the unary & operator, or is a string literal used to initialize an array, an expression that has type ??????array of type?????? is converted to an expression with type ??????p