Título: Pointers Publicado por: josephb401 en 27 Abril 2016, 03:39 am Hola! creen que alguien que sepa mucho de pointers me podria decir que estoy hasiendo mal en esta funcion creo que esta cojiendo la memoria de donde no deviera espero alguien puda ayudarme solo voy a poner la function aqui si quieren el codigo completo dejenme saber
Código: void reverse(int *arrayPtr, int size) Título: Re: Pointers Publicado por: crack81 en 27 Abril 2016, 04:38 am Hola no entiendo que quieres hacer, detalla mejor tu pregunta ya que tu codigo no es muy claro.
Si lo que quieres es invertir un arreglo de enteros una forma podria ser esta: Código
Saludos... Título: Re: Pointers Publicado por: HardForo en 27 Abril 2016, 05:09 am Otra forma es intercambiar el ultimo por el primero, el 2 por el N-2,.... el i por el N-i hasta que se crucen los punteros.
Creo intentó hacer eso pero en tal caso es innecesario crear otro arreglo Título: Re: Pointers Publicado por: MAFUS en 27 Abril 2016, 15:33 pm La idea es buena, pero vamos a ver los fallos.
Creas un array dinámico para alojar la inversa del array que pasas y te mueves en él mediante aritmética de punteros, haciendo que el puntero mismo vaya variando. Cuándo lo quieres liberar con delete has perdido el puntero original que apunta al inicio de bloque con lo que fallas. La solución es crear un puntero permanente que guarde esa posición y usar otro para moverte por el array, tal que así: Código
Ahora usas uno para moverte como te movías y el otro para liberar con delete. Para llevar arrayPtr hasta el final hazlo con una simple operación, así quitas código y tiempo de proceso: En vez de Código usa Código
La orden para eliminar un array es mediante Código y no con Código
Las órdenes para preparar el array arrayPtr y para realizar la copia del arrayPtr2 al arrayPtr sácalas del bucle de generación del arrayPtr2. Son trabajos diferentes. La función debería quedarte algo como esto: Código
Si la función no es para estudiar punteros, ni memoria dinámica y es solamente para invertir un array puedes dejar a un lado todo esto y usar código más normal. Incluye en tu código lo siguiente: Código
Título: Re: Pointers Publicado por: HardForo en 27 Abril 2016, 19:59 pm En cuanto al tema de la funcion swap, se puede lograr lo mismo con sumas y restas.
Título: Re: Pointers Publicado por: josephb401 en 27 Abril 2016, 21:56 pm muchas gracias a todos por ayudarme a resolver el problema
|