__ptr32, __ptr64
Section spécifique à Microsoft
__ptr32 représente un pointeur natif sur un système 32 bits, tandis que __ptr64 représente un pointeur natif sur un système 64 bits.
L'exemple suivant montre comment déclarer chacun de ces types pointeur :
int * __ptr32 p32;
int * __ptr64 p64;
Sur un système 32 bits, un pointeur déclaré avec __ptr64 est tronqué à un pointeur 32 bits. Sur un système 64 bits, un pointeur déclaré avec __ptr32 est converti en pointeur 64 bits.
Notes
Vous ne pouvez pas utiliser __ptr32 ou __ptr64 lors de la compilation avec /clr:pure.Sinon, l'erreur Compiler Error C2472 est générée.
Exemple
L'exemple suivant montre comment déclarer et allouer des pointeurs avec les mots clés __ptr32 et __ptr64.
#include <cstdlib>
#include <iostream>
int main()
{
using namespace std;
int * __ptr32 p32;
int * __ptr64 p64;
p32 = (int * __ptr32)malloc(4);
*p32 = 32;
cout << *p32 << endl;
p64 = (int * __ptr64)malloc(4);
*p64 = 64;
cout << *p64 << endl;
}