4. Tengo una función que recibe, y se supone, inicializa,
un puntero:
int
*ip;
void f(ip) {
static int dummy
= 5;
ip = &dummy;
}
Pero cuando la llamo de esta manera:
int *ip;
f(ip);
el
puntero no cambia.
¿Estas
seguro de que la función inicializa lo que tu quieres?
Recuerda que los argumentos en C++ son pasados por valor. La función
llamada cambia sólo la copia pasada del puntero.
Seguramente
lo que querrás será pasar la dirección del
puntero (la función tendrá que tener como parámetro
un puntero a puntero), o de otra manera, tendrás que hacer
que la función devuelva el propio puntero.
.