Vai al contenuto

Funzionalità c++ non presenti su mac ma presenti su linux? è possibile????


Messaggi raccomandati

Ciao a tutti...

ho questo problema: il seguente codice si compila e funziona come richiesto su Linux mentre sul mio mac il compilatore mi dice che la conversione da char* a int perde precisione.

Questo è il codice:

#include <iostream>

using namespace std;

int main( )

{const char *p = "cucu";

cout

<< "la stringa [" << p << "] è memorizzata all'indirizzo "

<< (int)p << endl;}

Qualcuno di voi mi sa spiegare il motivo e come è possibile ovviare al problema?? Infinite Grazie!

P.S.

Lo stesso succede se uso reinterpret_cast<int>(p)

Link al commento
Condividi su altri siti

Qualcuno di voi mi sa spiegare il motivo e come è possibile ovviare al problema?? Infinite Grazie!

Prementto che non conosco C++, ma la butto lì:

magari il processore lavora a 64 bit, quindi usa puntatori da 8 byte, ed essendo un int da 4 byte non riesce a contenere completamente il valore del puntatore.

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

Prementto che non conosco C++, ma la butto lì:

magari il processore lavora a 64 bit, quindi usa puntatori da 8 byte, ed essendo un int da 4 byte non riesce a contenere completamente il valore del puntatore.

GRAZIEE!! Genio! Non ci avevo pensato... alla fine basta fare il casting con long int invece che int così da avere un puntatore a 8 byte! Perfect!

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...