Функция f
выделяет свой результат всегда на тот же адрес, что делает функцию main()
всегда распечатывать тот же результат, как я могу сделать функцию распределением изменить другой адрес и free
их.Функция всегда распределяется по одному и тому же адресу, и переменная не изменяется
int *f(int a) {
int b = 2 * a;
return &b;
}
int main(void) {
int *p4, *p8;
p4 = f(4);
p8 = f(8);
printf("p4: %i/p8: %i\n", *p4, *p8);
}
http://stackoverflow.com/questions/12380758/c-error-function-returns-address-of-local-variable –