How to assign pointer address manually in C programming language?

125,826

Solution 1

Like this:

void * p = (void *)0x28ff44;

Or if you want it as a char *:

char * p = (char *)0x28ff44;

...etc.

If you're pointing to something you really, really aren't meant to change, add a const:

const void * p = (const void *)0x28ff44;
const char * p = (const char *)0x28ff44;

...since I figure this must be some kind of "well-known address" and those are typically (though by no means always) read-only.

Solution 2

Your code would be like this:

int *p = (int *)0x28ff44;

int needs to be the type of the object that you are referencing or it can be void.

But be careful so that you don't try to access something that doesn't belong to your program.

Solution 3

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 

Basically in Embedded platform we are using directly addresses instead of names

Share:
125,826
Irakli
Author by

Irakli

I am Senior Full-Stack Software engineer with 8 years of experience. I worked with multiple successful startups remotely. I love working on products end-to-end.

Updated on December 27, 2020

Comments

  • Irakli
    Irakli over 3 years

    How do you assign a pointer address manually (e.g. to memory address 0x28ff44) in the C programming language?