following approach work for me
Code:
#include<stdio.h>
int read (unsigned int N, unsigned int *p);
int read (unsigned int N, unsigned int *p)
{
int i;
for (int i = N-1; i >= 0; i--) {
printf("\n read address %p \n ", (p + N-1));
printf("value store at this address is = %d \n", *( p + N-1));
--p;
}
}
int main()
{
int s; int N = 5 ; // length of array
//Initialize array
int Data[] = {1, 2, 3, 4, 5};
printf("Original array: \n");
for (int i = 0; i < N; i++) {
printf("%p = %d \n", &Data[i], Data[i] );
}
printf("\n");
printf("Array in reverse order: \n");
//Loop through the array in reverse order
for (int i = N-1; i >= 0; i--) {
printf("%p = %d \n", &Data[i], Data[i] );
}
s= read (N, Data);
return 0;
}
Original array:
0061FF0C = 1
0061FF10 = 2
0061FF14 = 3
0061FF18 = 4
0061FF1C = 5
Array in reverse order:
0061FF1C = 5
0061FF18 = 4
0061FF14 = 3
0061FF10 = 2
0061FF0C = 1
read address 0061FF1C
value store at this address is = 5
read address 0061FF18
value store at this address is = 4
read address 0061FF14
value store at this address is = 3
read address 0061FF10
value store at this address is = 2
read address 0061FF0C
value store at this address is = 1