Comment attribuer une adresse de pointeur manuellement (par exemple, à l'adresse mémoire 0x28ff44
) dans le langage de programmation C?
Comme ça:
void * p = (void *)0x28ff44;
Ou si vous le souhaitez en tant que char *
:
char * p = (char *)0x28ff44;
...etc.
Si vous pointez sur quelque chose que vous n'êtes vraiment pas censé changer, ajoutez un const
:
const void * p = (const void *)0x28ff44;
const char * p = (const char *)0x28ff44;
... car je pense que cela doit être une sorte d '"adresse bien connue" et celles-ci sont généralement (mais en aucun cas toujours) en lecture seule.
Votre code serait comme ceci:
int *p = (int *)0x28ff44;
int
doit être le type de l'objet auquel vous faites référence ou il peut être void
.
Mais soyez prudent afin de ne pas essayer d'accéder à quelque chose qui n'appartient pas à votre programme.
int *p=(int *)0x1234 = 10; //0x1234 is the memory address and value 10 is assigned in that address
unsigned int *ptr=(unsigned int *)0x903jf = 20;//0x903j is memory address and value 20 is assigned
Fondamentalement, dans la plate-forme intégrée, nous utilisons directement des adresses au lieu de noms
L'écriture:
int *p=(int *)0x1234 = 10;
n'est pas légal pour certains compilateurs. Vous devez diviser en deux instructions:
int *p=(int *)0x1234; *p = 10;