For example:
void func1(){ int i = 123; func2(&i); } void func2(int *a){ *a = 456; }
When func1 calling
func1
The scope of i is func1 and it outlives the call to func2. So it is perfectly safe.
i
func2