std::cout << (void*) &charArray[0];
There's an overload of operator<<
for char*
, that tries to print the nul-terminated string that it thinks your pointer points to the first character of. But not all char arrays are nul-terminated strings, hence the garbage.