Programación General > C/C++
Error reservar memoria dentro funcion
Eternal Idol:
El problema realmente esta al intentar acceder en alsr a los elementos como si fuera un array de punteros a int cuando no lo es.
Antes o despues de:
--- Código: Text ---int *temporal=NULL;
Declaramos otro puntero comun tal como tmp:
--- Código: Text ---int *nvector = NULL;
Despues de reservar memoria para vector hacemos:
--- Código: Text ---nvector = (int*)*vector;
Accediendo finalmente de esta manera funcionara:
--- Código: Text ---nvector[i] = temporal[pos];...//para el elsenvector[i] = temporal[0];
PD. Usando nvector en lugar de vector podes usar tu sintaxis original pero no se entiende bien a simple vista ;)
PD2. Cuidado con lon que puede volverse 0, con cantidad siendo 5 por ejemplo, y al calcular pos dar una excepcion por divir por 0.
krnl64:
--- Cita de: "Eternal Idol" ---El problema realmente esta al intentar acceder en alsr a los elementos como si fuera un array de punteros a int cuando no lo es.
Despues de reservar memoria para vector hacemos:
--- Código: Text ---nvector = (int*)*vector;
--- Fin de la cita ---
Si, te entendi al ver
--- Código: C --- (*(*(vector+i)))=*(temporal+pos); ya que en el contexto de la función es un doble puntero aunque realmente en su contexto original no lo era.
Me costo deducir el cast y luego lo he visto aqui escrito.
Hasta ahora solo habia reservado memoria para una variable externa a una función si usar esa memoria dentro de la función que la reserva.
Me acuesto habiendo aprendido algo más :D
Gracias de nuevo.
Salu2
Eternal Idol:
De nadas :comp: B) :beer:
Navegación
[*] Página Anterior
Ir a la versión completa