Aunque no soy Pedro, con vuestro permiso, me meteré por medio:
No se por que no funciona, ayudaría también que dijeras porqué no te
funciona, que resultado obtienes en lugar del que esperas.
En una primera lectura parece correcto, pero a mi, personalmente, nunca me
ha gustado sumarle cosas a los punteros, sólo los incremento y decremento.
En este caso prueba a usar [] dejando el trabajo al compilador y obteniendo
un código mas legible, a ver si funciona mejor.
Si con estas modificaciones funciona, sólo te queda hacer un debug de tu
programa línea a línea para ver donde falla.
Probarlo con frase más cortas, y con número de letras pares e impares.
Te lo corrijo entre líneas, sigue leyendo
Post by Olaf "El Blanco"Pedro cuando tengas tiempo mirame este codigo... y dime porque no va...
Uso gcc y es infinito... Me da error de memoria. (le he sacado los printf)
Paso algo con este grupo? Parece que ha perdido mucha actividad, verdad?
#include <stdio.h>
#include <stdlib.h>
// Quiero dar vuelta una frase usando ESTE for, y no razono porque no
funciona.
int main()
{
int empieza, termina;
char letra; // Letra auxiliar
char *frase="Andres y Winston se fueron a National Geogaphics";
char frase[]="Andres y Winston se fueron a National GeogRaphics";
Aqui creo que falta una erre en GeogRaphics, pero este no creo que sea el
ERROR ;-)
Post by Olaf "El Blanco"empieza=0;
termina=strlen(frase)-1; // Si se agrega \n en frase, restarle 1 char mas.
if ('\n'==frase[termina]) termina--;
Post by Olaf "El Blanco"for (empieza=0; empieza<termina; empieza++, termina--) {
/* Intercambio valores de valores */
letra= *(frase+empieza);
*(frase + empieza) = *(frase + termina);
*(frase + termina) = letra;
letra = frase[empieza];
frase[empieza]=frase[termina];
frase[termina] = letra;
Post by Olaf "El Blanco"}
return 0;
}
On Mon, 27 Mar 2006 22:29:42 +0200, "Olaf \"El Blanco\""
Post by Olaf "El Blanco"Existe alguna función en C que haga esto?
Yo creo que no, aunque probablemente cada sistema operativo tenga
alguna funcion propia que de la cantidad de memoria, la de verdad, la
virtual, etc... son cosas que generalmente no se usan, si no estas
haciendo alguna utilidad muy especial.
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en www.maicas.net