C ++ Печать значения указателя дает странный результат

Когда я компилирую и запускаю этот код C ++, я не получаю ожидаемого результата.

#include <iostream>
using namespace std;

int main()
{
    int * i = new int;
    long * l = new long;
    char * c = new char[100];
    float * f = new float[100];

    cout << "i " << i << endl;
    cout << "l " << l << endl;
    cout << "c " << c << endl;
    cout << "f " << f << endl;


    delete i;
    delete l;
    delete []c;
    delete []f;

    cin.get();
    return 0;
}

На машине unix я получаю

i 0x967f008
l 0x967f018
c
f 0x967f090

На машине Windows значение c печатается как over строка случайных символов.

Кто-нибудь может объяснить, почему он неправильно печатает указатель на массив символов.

Спасибо

9
задан Charles 19 January 2012 в 20:22
поделиться