Título: asignación dinámica de memoria y strcpy Publicado por: m@o_614 en 5 Junio 2014, 18:53 pm Saludos
Tengo un pequeño código en el cual le asigno memoria a un puntero dinamicamente, despues le asigno unos valores y los imprimo, el problema lo tengo en el strcpy que se supone que le tiene que asignar la cadena "hola" al puntero, pero el programa truena y no entiendo por qué?? Código
gracias Título: Re: asignación dinámica de memoria y strcpy Publicado por: Klixz en 5 Junio 2014, 19:08 pm Que tu int main que de así.
Código
Y luego en el char crees la variable, luego con strcpy & printf imprimes. Código
Y luego para imprimirlos haces esto. Código que no se te olvide el return 0; Cuídate, y si tienes alguna duda me avisas por MP o comenta tema Título: Re: asignación dinámica de memoria y strcpy Publicado por: Eternal Idol en 5 Junio 2014, 19:32 pm En la linea 9 estas asignandole a x la direccion de memoria donde se encuentra la cadena "101010101" (ademas eso genera un memory leak, la memoria antes reservada no fue liberada y no hay mas referencias a ella) por eso despues cuando intentas escribir sobre la cadena da error, seguro que la misma esta en la sección de datos de solo lectura.
Klixz: lee las preguntas con atencion por favor. Título: Re: asignación dinámica de memoria y strcpy Publicado por: leosansan en 5 Junio 2014, 22:42 pm Ahondando en lo que comenta E.I, al hacer:
Código
al tratarse de una cadena de caracteres constantes no podrás modificarla a posteriori, de ahi que al intentarlo con strcpy el programa cruja. Para ello, para modificar el valor del puntero, tendría que "apuntar" a una dirección que no sea una constante, como un array. El resultado que quieres obtener te lo puede proporcionar curiosamente lo mismo que te daba problema:strcpy (http://www.cplusplus.com/reference/cstring/strcpy/). Como ejemplo: Citar x=strcpy1=[101010101] x=strcpy2=[hola] Process returned 0 (0x0) Código
¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) |