Discussion:
Como saber cuanta memoria disponible hay?
(demasiado antiguo para responder)
Olaf "El Blanco"
2006-03-27 20:29:42 UTC
Permalink
Existe alguna función en C que haga esto?
Pedro Maicas
2006-03-27 22:03:39 UTC
Permalink
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
Olaf "El Blanco"
2006-03-27 22:19:47 UTC
Permalink
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";

empieza=0;
termina=strlen(frase)-1; // Si se agrega \n en frase, restarle 1 char mas.

for (empieza=0; empieza<termina; empieza++, termina--) {
/* Intercambio valores de valores */
letra= *(frase+empieza);
*(frase + empieza) = *(frase + termina);
*(frase + termina) = letra;
}
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
Bartomeu
2006-03-28 06:31:52 UTC
Permalink
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
Pedro Maicas
2006-03-28 07:59:53 UTC
Permalink
Post by Bartomeu
No se por que no funciona, ayudaría también que dijeras porqué no te
funciona, que resultado obtienes en lugar del que esperas.
ya contesté en el grupo de c++, a mi tambien me parecía correcto,
lo ejecuté en windows y saltó una excepcion al intentar escribir
sobre el string, que se considera una constante y el compilador lo
pone en un segmento de memoria de solo lectura. Es un error que
con otro compilador o en otro sistema operativo podría no ocurrir.



Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net

Loading...