How to assign pointer address manually in C programming language?

后端 未结 3 2046
太阳男子
太阳男子 2020-11-30 19:16

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

相关标签:
3条回答
  • 2020-11-30 19:48

    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.

    0 讨论(0)
  • 2020-11-30 19:53
    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

    0 讨论(0)
  • 2020-11-30 19:59

    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.

    0 讨论(0)
提交回复
热议问题