malloc y realloc
Mi duda es que si en el main de un programa realizo un malloc de un vector y despues sobre una rutina realizo un realloc de ese vector pasado como parámetro... ¿ Seguira siendo accesible mas tarde desde el main?.... extiende memoria realloc localmente a la rutina y desaparece al salir?
Gracias un saludo....
Gracias un saludo....
El realloc() extiende la memoria y esta permanece luego en el main(), lo que pasa es que será una zona de memoria distinta y el puntero original no te valdrá, tendrás que apuntarlo al nuevo sitio.
Dos cosas:
- acuerdate de liberar el espacio original si realloc() te devuelve una direccion distinta de la original.
- recuerda que si haces
funcion (int *p)
{
p = realloc (p, ...);
}
cuando salgas al main, el parametro seguira apuntando a la memoria original, y no a la nueva. La forma de hacerlo es
int *funcion (int *p)
{
return realloc (p, ...);
}
Se bueno.
Dos cosas:
- acuerdate de liberar el espacio original si realloc() te devuelve una direccion distinta de la original.
- recuerda que si haces
funcion (int *p)
{
p = realloc (p, ...);
}
cuando salgas al main, el parametro seguira apuntando a la memoria original, y no a la nueva. La forma de hacerlo es
int *funcion (int *p)
{
return realloc (p, ...);
}
Se bueno.
