Cuando compilo y ejecuto este código C++, no obtengo el resultado que esperaba.C++ Imprimir el valor del puntero da un resultado extraño
#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;
}
en una máquina UNIX me sale
i 0x967f008
l 0x967f018
c
f 0x967f090
en una máquina Windows el valor para copias de c como a través de una línea de caracteres aleatorios.
Por favor alguien puede explicar por qué no está imprimiendo correctamente el puntero de la matriz de caracteres.
Gracias
cuál es la forma de hacer C++: '(* void) c'? –
que sería 'reinterpret_cast (c)'. –
Mat
@hexa: aunque @Mat tiene razón en que '(void *) c' es equivalente a' reinterpret_cast (c) ', la * forma C++ * de hacerlo es' static_cast (c) '; –