Mam pytanie: Czy możliwy (i ewentualnie w jaki sposób) będzie dostęp do zmiennej po wykonaniu funkcji, jeśli zmienna jest zadeklarowana wewnątrz funkcji i ma przydzieloną pamięć za pomocą malloc?
2 przykłady:
int* foo()
{
return (int*)malloc(sizeof(int));
}
void foo(int** var)
{
*var = (int*)malloc(sizeof(int));
}
Można również zadeklarować tą zmienną jako globalną, ale jest to brzydkie i niepolecane. W c++ mógłbyś jeszcze dać zmienną jako member klasy.
edytowany 1x, ostatnio: Zellus,
przykład drugi: modyfikujesz kopię wskaźnika - na zewnątrz nic nie zmieniasz. -
spartanPAGE
2014-12-30 18:32
Jasne sorry, teraz powinno być ok -
Zellus
2014-12-30 18:35
#include <stdio.h>
int foo(int x){
static int bar = 0;
return bar += x;
}
int main(){
int i = 0;
for(i; i < 10; ++i)
printf("%d\n", foo(i));
return 0;
}
edytowany 1x, ostatnio: spartanPAGE,
Liczba odpowiedzi na stronę