Programación General > C/C++

 Error reservar memoria dentro funcion

<< < (2/2)

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

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa