http://ideone.com/4p1gqr
#include <iostream> int main(int argc, char** argv) { float *f = new float[10]; std::cout << f << std::endl; std::cout << f + 3 << std::endl; char *c = new char[10]; std::cout << c << std::endl; // no print std::cout << c + 3 << std::endl; // no print return 0; } stdout 0x2b3cbaf1bc20 0x2b3cbaf1bc2c
How to print the address of char array?
You need to cast to void* to invoke correct overload of operator << instead of outputting as C strings
void*
operator <<
std::cout << static_cast<void*>(c) << std::endl; std::cout << static_cast<void*>(c+3) << std::endl;
1.4m articles
1.4m replys
5 comments
57.0k users