Título: Fallo de segmentación Publicado por: W0lFy en 20 Octubre 2010, 20:49 pm Quisiera cambiar un caracter en una cadena de caracteres, y me da fallo de segmentación. ¿ que ocurre?
char *cadena="Cliente: "; cadena=cadena+sizeof((char)*2); *cadena='a'; printf("caracter %c, *cadena); ................-> fallo de segmentación. Que ocurre? como se puede cambiar en C un caracter de una cadena de longitud dinamica? Un saludo Título: Re: Fallo de segmentación Publicado por: ace332 en 20 Octubre 2010, 21:10 pm Hola
Respondiendo a tu pregunta, la cadena "Cliente:" C la ubica en un lugar de la memoria que no puede ser modificada en tiempo de ejecución. Si deseas modificar la cadena debes definirla como un arreglo de chars: Código
Ahora, quieres hacer "cadenas de longitud dinámicas" mmmmm... Los strings en C son cadenas de caracteres terminados con un 0. Osea que puedes agregar o quitar caracteres a la cadena desplazando ese cero... Te recomiendo darle una revisada a la biblioteca string.h En fin, espero haber ayudado un poco Saludos. Título: Re: Fallo de segmentación Publicado por: W0lFy en 21 Octubre 2010, 01:09 am veamos el codigo:
Código Bueno pos la salida de main me devuelve por un lado "en desencolar hoba que tal" ( esto es el primer string que uso como banderita) aqui una cadena de "basura". como si no modificara el valor de la cadena, mi problema es que no se como devolver la cadena de caracteres en el procedimiento desencolar. No se pasarlo bien por referencia... Alguien me ayuda?¿ |