компиляция под Windows с помощью gcc, из этого кода:
#include <stdio.h>
int f(int ** iptr)
{
printf("f initial value: %i\n",**iptr);
int a =10;
*iptr = &a;
printf("f changed value: %i\n",**iptr);
return 0;
}
int main()
{
int * p = 0;
int i =7;
p = &i;
printf("main initial value: %i\n",*p);
f(&p);
printf("main after f value under p: %i\n",*p);
printf("again value under p: %i\n",*p);
printf("value of i: %i\n",i);
return 0;
}
Я получаю такой результат:
main initial value: 7
f initial value: 7
f changed value: 10
main after f value under p: 10
again value under p: 1963422240
value of i: 7
Есть идеи, почему это происходит?
Спасибо!
PS А форматирование этого сайта жалуется на то, что я не написал достаточно разговоров здесь ... Итак, будучи социальным ...:)