This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Using Pointer

Please could some body take a look at
my code to see why the Pointer variables
do not display correctly using debug in
Uvision2.

Here is the code:

unsigned int xdata VALUE;
unsigned int xdata *addr = &VALUE;

Main()
{
for (VALUE=1; VALUE<=10; VALUE++)
{
printf("VALUE = %d", *addr); //data
pritnf("addr1 = %d", addr); //address1
printf("addr2 = %d", &VALUE); //address2
}
}

/////////////// end //////////////

PROBLEM: VALUE at printf statement line1
works properly, but the remaining two
printf statements for printing ADDRESS1, and ADDRESS2 are always displaying 256




Parents
  • "printf does not know how to print out pointers"

    Nonsense!
    See p291 of the 09.2001 C51 manual:

    "The type field is a single character that specifies whether the argument is interpreted as a character, string, number, or pointer, as shown in the following table...
    "p generic * Pointer using the format
    t:aaaa where t is the memory type the
    pointer references (c: code, i: data/idata, x: xdata, p: pdata) and aaaa is the hexadecimal address"

Reply
  • "printf does not know how to print out pointers"

    Nonsense!
    See p291 of the 09.2001 C51 manual:

    "The type field is a single character that specifies whether the argument is interpreted as a character, string, number, or pointer, as shown in the following table...
    "p generic * Pointer using the format
    t:aaaa where t is the memory type the
    pointer references (c: code, i: data/idata, x: xdata, p: pdata) and aaaa is the hexadecimal address"

Children