elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  error: invalid conversion from 'int*' to 'int' [-fpermissive]|
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error: invalid conversion from 'int*' to 'int' [-fpermissive]|  (Leído 6,031 veces)
GenR_18

Desconectado Desconectado

Mensajes: 115


Ver Perfil
error: invalid conversion from 'int*' to 'int' [-fpermissive]|
« en: 19 Septiembre 2014, 22:48 pm »

Buenas!

Estoy desoxidandome  ;D un poco sobre el tema de los métodos de ordenamiento en C++, y al "terminar" mi código del QuickSort me ha salido este error.

error: invalid conversion from 'int*' to 'int' [-fpermissive]|  :¬¬

Código
  1. int quicksort2(int numeros[], int izq, int der)
  2. {
  3.    if(izq>=der)
  4.        return numeros;
  5.    int i=izq, d=der;
  6.    if(izq!=der)
  7.    {
  8.        int pivote;
  9.        int aux;
  10.        pivote=izq;
  11.        while(izq!=der){
  12.            while(numeros[der]>=numeros[pivote] && izq<der)
  13.                der--;
  14.                while(numeros[izq]<numeros[pivote]&& izq<der)
  15.                    izq++;
  16.            if(der!=izq)
  17.            {
  18.                aux=numeros[der];
  19.                numeros[der] = numeros[izq];
  20.                numeros[izq] = aux;
  21.            }
  22.            if(izq==der){
  23.                quicksort2(numeros,i,izq-1);
  24.                quicksort2(numeros,izq+1,d);
  25.            }
  26.        }
  27.  
  28.        }
  29.    else
  30.        return numeros;
  31.    return numeros;
  32.    }
  33.  
  34.  
  35. int quicksort1(int numeros[])
  36. {
  37.    int n = (sizeof(numeros)/sizeof(numeros[0])); // tamañp del arreglo
  38.    return quicksort2(numeros,0,n-1);
  39. }
  40.  
  41. void ordenarQuickSort(int arreglo[])
  42. {
  43.    arreglo = quicksort1(arreglo);
  44. }
  45.  

Espero alguien me pueda ayudar, desde ya, gracias!.  :rolleyes:

Salu2


En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: error: invalid conversion from 'int*' to 'int' [-fpermissive]|
« Respuesta #1 en: 19 Septiembre 2014, 23:39 pm »

Las funciones quicksort2 y quicksort1 son de tipo int pero devuelven un int*


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: error: invalid conversion from 'int*' to 'int' [-fpermissive]|
« Respuesta #2 en: 20 Septiembre 2014, 02:12 am »

Estoy desoxidandome  ;D un poco sobre el tema de los métodos de ordenamiento en C++, y al "terminar" mi código del QuickSort me ha salido este error.

error: invalid conversion from 'int*' to 'int' [-fpermissive]|
Tienes otros dos errores, en la función "quicksort1" tratas de obtener el numero de elementos con:
Código
  1. int quicksort1(int numeros[])
  2. {
  3.   int n = (sizeof(numeros)/sizeof(numeros[0])); // tamañp del arreglo
No funcionara correctamente ya que el tipo del parámetro "numeros" es "int *".

El otro error se encuentra en la función "ordenarQuickSort":
Código
  1. void ordenarQuickSort(int arreglo[])
  2. {
  3.   arreglo = quicksort1(arreglo);
Ahí "arreglo" es una variable local de tipo "int *", su modificación solo tendrá efecto dentro de la función (y sin el resultado buscado de copiar el array ya que estos no pueden copiarse mediante el operador de asignación).

Ya que se trata de C++ lo mejor es pasar una referencia a un objeto de la clase vector (hay algunos ejemplos en la base de datos de los foros).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines