Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: David8 en 4 Mayo 2014, 19:59 pm



Título: Me da error y no sé porqué
Publicado por: David8 en 4 Mayo 2014, 19:59 pm
Este es el código:
Código
  1. #include<stdio.h>
  2.  
  3. void situarPosiciones(int *posicion);
  4.  
  5. int main(void)
  6. {
  7.  
  8. static int situarPosiciones[5] = {0,1,2,3,4};
  9.  
  10.  
  11. funcion(situarPosiciones);
  12.  
  13.  
  14. return 0;
  15. }
  16.  
  17. void situarPosiciones(int *posicion)
  18. {
  19. int i;
  20.  
  21. for(i = 0; i < 5; i++){
  22. if(*(posicion + i) != 0){
  23. *(posicion + i)--;
  24. }
  25. else{
  26. *(posicion + i) = 4;
  27. }
  28. }
  29.  
  30. return;
  31. }

Lo que pretende es que cada vez que llame a la función me salga algo como:
|0|1|2|3|4| 1º llamada
|4|0|1|2|3| 2º llamada
|3|4|0|1|2| 3º llamada
--------------------------

Pero no sé que puede estar fallando

Un saludo


Título: Re: Me da error y no sé porqué
Publicado por: Blaster en 4 Mayo 2014, 20:58 pm
Esta linea

Código
  1. *(posicion + i)--;

La debes cambiar por esta

Código
  1. (*(posicion + i))--;

Debes conocer la prioridad que tienen los diferentes operadores



Título: Re: Me da error y no sé porqué
Publicado por: David8 en 4 Mayo 2014, 21:02 pm
Esta linea

Código
  1. *(posicion + i)--;

La debes cambiar por esta

Código
  1. (*(posicion + i))--;

Debes conocer la prioridad que tienen los diferentes operadores



Si eso ya lo probé y es verdad que lo tenía mal. Pero además, he estado ahora mirando y es que llamo a la funcion como
Código:
funcion(situarPosiciones);

Y funcion no la tengo declarada. No sé porqué el compilador no me avisó de eso.

Un saludo y muchas gracias


Título: Re: Me da error y no sé porqué
Publicado por: Blaster en 4 Mayo 2014, 21:13 pm
Pero además, he estado ahora mirando y es que llamo a la funcion como
Código:
funcion(situarPosiciones);
Y funcion no la tengo declarada. No sé porqué el compilador no me avisó de eso.

Esta muy raro eso, el compilador te deberia lanzar un error diciendo que la función no se ha definido. Podrias decir que compilador usas


Título: Re: Me da error y no sé porqué
Publicado por: David8 en 4 Mayo 2014, 21:16 pm
Esta muy raro eso, el compilador te deberia lanzar un error diciendo que la función no se ha definido. Podrias decir que compilador usas

Uso el Dev C++. El error que me salía, por lo que no ejecutaba era el de linked error.

Como no me dió error en la función no me fije si estaba bien esa parte de la sintaxis.
Un saludo.


Título: Re: Me da error y no sé porqué
Publicado por: Blaster en 4 Mayo 2014, 21:25 pm
Uso el Dev C++.

Yo te recomendaria que busques otro IDE mas moderno, por que este tiene el compilador y las librerias desactualizadas, tienes alternativas como el Code::Blocks que te recomiendo muchisimo

Saludos


Título: Re: Me da error y no sé porqué
Publicado por: David8 en 4 Mayo 2014, 21:30 pm
Yo te recomendaria que busques otro IDE mas moderno, por que este tiene el compilador y las librerias desactualizadas, tienes alternativas como el Code::Blocks que te recomiendo muchisimo

Saludos

El problema es que tengo Windows 8.1 con procesador de 64 y no compila, por eso me decanté por el Dev C++

Un saludo