Me da error y no sé porqué

Iniciado por David8, 4 Mayo 2014, 19:59 PM

0 Miembros y 2 Visitantes están viendo este tema.

David8

Este es el código:

#include<stdio.h>

void situarPosiciones(int *posicion);

int main(void)
{

static int situarPosiciones[5] = {0,1,2,3,4};


funcion(situarPosiciones);


return 0;
}

void situarPosiciones(int *posicion)
{
int i;

for(i = 0; i < 5; i++){
if(*(posicion + i) != 0){
*(posicion + i)--;
}
else{
*(posicion + i) = 4;
}
}

return;
}


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

Blaster

Esta linea

Código (cpp) [Seleccionar]
*(posicion + i)--;

La debes cambiar por esta

Código (cpp) [Seleccionar]
(*(posicion + i))--;

Debes conocer la prioridad que tienen los diferentes operadores


David8

Cita de: Blaster en  4 Mayo 2014, 20:58 PM
Esta linea

Código (cpp) [Seleccionar]
*(posicion + i)--;

La debes cambiar por esta

Código (cpp) [Seleccionar]
(*(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
funcion(situarPosiciones);

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

Un saludo y muchas gracias

Blaster

Cita de: David8 en  4 Mayo 2014, 21:02 PM
Pero además, he estado ahora mirando y es que llamo a la funcion como
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

David8

Cita de: Blaster en  4 Mayo 2014, 21:13 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.

Blaster

Cita de: David8 en  4 Mayo 2014, 21:16 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

David8

Cita de: Blaster en  4 Mayo 2014, 21:25 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