Firstly, I'm new to C, so please bear with me.
I'm trying to increment a pointer, the following code works correctly with the
following output:
before number = [0], address = [0xbfec32b0}
after number = [1], address = [0xbfec32b4}
Code:
#include <stdio.h>
int main(void) {
int number[2] = { 0,1 };
int *p_number = NULL;
p_number = &number[0];
printf("before number = [%d], address = [%p}\n",*p_number,p_number);
p_number++;
printf("after number = [%d], address = [%p}\n",*p_number,p_number);
return 0;
}
However, when I try to perform the same task using a function, I get the following output:
before number = [0], address = [0xbff372a0}
after number = [0], address = [0xbff372a0}
Code:
#include <stdio.h>
void increment(int *p_address);
int main(void) {
int number[2] = { 0,1 };
int *p_number = NULL;
p_number = &number[0];
printf("before number = [%d], address = [%p}\n",*p_number,p_number);
increment(p_number);
printf("after number = [%d], address = [%p}\n",*p_number,p_number);
return 0;
}
void increment(int *p_address) {
p_address++;
}
Any advice with this would be most welcome, I'm positive that I'm doing something wrong.
Thanks
~P