PDA

Visualizza versione completa : C++: come inca**arsi in 5 minuti


Lucavettu
16-04-2002, 17.16.21
Mettiamo il caso che io voglio dare questo codice:

#include <stdio.h>
void main(void);
void main(void)
{ double far *numFarPtr=0x596A074B;
printf("numFarPtr = %Fp\n",numFarPtr); }


presumendo che vorrei ottenere un risultato del tipo:


numFarPtr = 596A:074B


quando lo faccio compilare a "Microsoft Visual C++" mi rilascia:


--------------------Configuration: prova - Win32 Debug--------------------
Compiling...
prova.c
C:\Windows\Desktop\prova.c(7) : error C4226: nonstandard extension used : 'far' is an obsolete keyword
C:\Windows\Desktop\prova.c(7) : warning C4047: 'initializing' : 'double *' differs in levels of indirection from 'const int '
Error executing cl.exe.

prova.obj - 1 error(s), 1 warning(s)


cosa cavolo posso fare???
vi premetto che sto cercando di imparare il C++, faccio quello che c'è sulla guida e il compilatore mi dà questo errore...
già è difficile andare a capire il funzionamento dei puntatori con * e & ... poi mi capita l'errore con il "far"... AIUTO!!!

P8257 WebMaster
17-04-2002, 11.23.03
Ti interessa proprio fare un puntatore far? .. la sintassi che hai messo nella dichiarazione non è più utilizzata, molto più semplicemente potresti risolvere il problema con un puntatore DOUBLE o long DOUBLE, fare le tue operazioni e poi stamparlo con lo specificatore di formato '%x' o '%X'

Attenzione ai puntatori .. soprattutto sotto Win32!!:D

Bye :cool:

P.S.: spero che la doppia dichiarazione della main sia un errore di copiatura ..

Lucavettu
17-04-2002, 18.08.54
mi riscriveresti quelle quattro righe ma corrette? così capisco meglio... grazie :rolleyes:

P8257 WebMaster
18-04-2002, 08.51.00
Ciao,
Posto il sorgente come mi hai richiesto ma ATTENZIONE ... perché nel programma NON HO ALLOCATO memoria per il puntatore. Il programma funziona ma di buona regola la memoria va allocata, mi raccomando! (Ah, questo C, ti permette proprio di fare tutto!! :D )

#include <stdio.h>

void main(void)
{
long double *FarPtr = 0x596A074B;
printf("%x", FarPtr);
}


Testato w/ GCC

Bye :cool:

Lucavettu
18-04-2002, 19.22.58
grazie P8257!!!!

sei un boss!!! :D :D :D :D :D :D :S :S :S :S