#include <stdio.h>
#define MAX1 4
#define MAX2 3
int x[MAX1] [MAX2], ctr, ctr2, ctrVal, *ptr;
signed int vals[MAX1 * MAX2];
int main()
{
int (*y)[MAX2];
ctrVal = 0;
for(ctr2 = 0; ctr2 < MAX2; ctr2++)
{
ptr = &x[ctr][0];
for(ctr = 0; ctr < MAX1; ctr++)
{
x[ctr] [ctr2] = ctr + 10;
printf("Element [%d] [%d], on adress %d - %d\n", ctr, ctr2, ptr, x[ctr] [ctr2]);
vals[ctrVal++] = (int)ptr++;
}
putchar('\n');
}
ptr = &x[0] [0];
printf("\n\nptr = %d\n", &x[0] [0]);
for(ctr = 0; ctr < (MAX1 * MAX2); ctr++)
{
printf("Value on adress %d - %d\n", ptr, *ptr);
if(ptr == vals[ctr])
printf("The adress matches vals[%d].\n\n", ctr);
ptr++;
}
return 0;
}
I expect the values printed by the last loop to be the same as the first loop, but for some reason they're different. Can you please point me to the bug?
Thanks, Mike.


Sign In
Create Account



Back to top









