Discussion:
Problema con cadenas
(demasiado antiguo para responder)
|||RIP|||
2007-05-13 16:33:05 UTC
Permalink
Declarada --> char comando[]="";

Tengo dentro de un bucle la variable comando y cuando comienza de nuevo
el bucle me gustaria poder inicializarla a vacio.

Alguien me puede echar un cable?

Saludos y gracias!
Zephryn Xirdal
2007-05-13 16:41:37 UTC
Permalink
Post by |||RIP|||
Declarada --> char comando[]="";
Tengo dentro de un bucle la variable comando y cuando comienza de nuevo
el bucle me gustaria poder inicializarla a vacio.
Alguien me puede echar un cable?
Saludos y gracias!
comando[0]='\0';
--
Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
========================================
No son las cosas las que atormentan a los hombres, sino la opinión que se
tiene de ellas.
-- Epicteto. (50-135) Filósofo grecolatino.
|||RIP|||
2007-05-13 17:10:00 UTC
Permalink
Post by Zephryn Xirdal
comando[0]='\0';
Que probe de todo menos esa... ¬¬

Muchisimas gracias!!!
Zephryn Xirdal
2007-05-13 18:01:10 UTC
Permalink
Post by |||RIP|||
Post by Zephryn Xirdal
comando[0]='\0';
Que probe de todo menos esa... ¬¬
Muchisimas gracias!!!
;-)
--
Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
========================================
No son las cosas las que atormentan a los hombres, sino la opinión que se
tiene de ellas.
-- Epicteto. (50-135) Filósofo grecolatino.
Alberto Giménez
2007-05-14 17:45:17 UTC
Permalink
Post by |||RIP|||
Declarada --> char comando[]="";
Ten mucho cuidado con ese tipo de declaraciones, porque C no es como
C++. En C lo que estás haciendo es reservar un único carácter de espacio
para la variable comando (justo el espacio que ocupa el literal que
estás utilizando para la inicialización. Cuando machaques el valor
inicial, seguro que caes un un buffer overflow.

Si quieres un array dinámico de verdad utiliza malloc.

Saludos
--
Luis Alberto Giménez
JabberID: ***@bulmalug.net
GnuPG ID: 0x3BAABDE1
your name
2007-05-20 17:44:13 UTC
Permalink
Post by |||RIP|||
Declarada --> char comando[]="";
Tengo dentro de un bucle la variable comando y cuando comienza de nuevo
el bucle me gustaria poder inicializarla a vacio.
Alguien me puede echar un cable?
Saludos y gracias!
tienes que hacer otro bucle y asignarle a cada posicion NULL
Oscar Garcia
2007-05-20 20:56:58 UTC
Permalink
Post by your name
Post by |||RIP|||
Declarada --> char comando[]="";
tienes que hacer otro bucle y asignarle a cada posicion NULL
Hombre, no seas bestia (con perdón).

Para inicializar una cadena a una vacía es suficiente con poner a 0 el
primer carácter de la misma (*comando = 0; o comando[0] = 0; es suficiente).

No puedes ir asignando valores NULL a cada posición de la cadena. Según
el sistema operativo y compilador un valor NULL ocupa 2, 4 u 8 bytes (y
por lo normal son bytes puestos a cero, pero podría no ser siempre así
dependiendo de la arquitectura del ordenador).

Si quieres rellenar toda la cadena a cero lo mejor es usar memset. Es
más rápido que un bucle y está optimizado para usar relleno multibyte si
la CPU lo soporta (para ahorrar ciclos de reloj).

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
Loading...