First of, your C++ implementation should use
#include <iostream> // without the .h!
Then, I assume the trouble you have is caused by the line
The good thing about formatted stream i/o is that it automatically detects the type of variable your are writing and converts them to text accordingly. In this case this automatism however doesn't do what you expected. You are passing a value of type char* and that means, the stream i/o will assume that you want to output a character string. So it writes whatever is in your yet uninitialized array until it finds a NUL-character.
What you intended to do is write that char* as address value, which you may accomplish by saying:
cout << (size_t) &array[j][k] << endl;
That will make you intention clear and you get what you want. By the way, you could have left your printf statements as they were and they would have worked fine in C++ also.