elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  dudas con strcpy
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: dudas con strcpy  (Leído 5,463 veces)
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: dudas con strcpy
« Respuesta #10 en: 16 Marzo 2014, 00:11 am »


La salida que obtienes viene a corroborar el origen de mi duda:

Citar

Lo que queda en str1: da laZga

Copiado, nuevo str2:
Entrada laZga



Y la cadena str2 impresa caracter a caracter:
 Entrada laZga
Process returned 0 (0x0)   execution time : 2.366 s
Press any key to continue.


Lo que queda en str1 es justo lo que cabe "oficialmente" en str2 ..... otra vez, y van tres ejemplos.
 Fíjate que "da laZga" es justo la cadena str1 sin los 5 caracteres que "cabrían" en str2" de acuerdo a su dimensión. Curioso, ¿no?.

Aclaro mis sospechas:

* En str2 se copia la cadena str1, aunque str2 tenga declarada una dimensión inferior a str1. Eso sucede en los tres ejemplos aquí expuestos, hasta ahora.

* En str1 "queda" lo que "teóricamente" no cabia en str1 por tener menor dimensión.

Como ves tu ejemplo ha venido a ratificar mis sospechas en lugar de negarlo.

Y ¡ojo!, no digo que esto sea una regla general, que de acuerdo a las indicaciones del comportamiento de strcpy vulnera, pero...... los ejemplos parecen empeñarse en dar la razón a mis dudas ... por ahora.

Y repito, sólo es una sospecha de lo que puede ser un comportamiento general y no previsto.


¡¡¡¡ Saluditos! ..... !!!!




En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: dudas con strcpy
« Respuesta #11 en: 16 Marzo 2014, 00:28 am »

La salida que obtienes viene a corroborar el origen de mi duda:

Lo que queda en str1 es justo lo que cabe "oficialmente" en str2 .....
Vuelve a repasar mi mapa de memoria, ahi explico porque str2 puede almacenar una cadena mayor (comiendole memoria a otras variables ;D).

* En str1 "queda" lo que "teóricamente" no cabia en str1 por tener menor dimensión.
Podemos usar memoria dinamica, de esa forma nos aseguramos que no ocupan posiciones continuas y no se cumpla mi teoría:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main ()
  5. {
  6.    int tam = strlen("Entrada larga");
  7.   char* str1 = malloc(tam+1);
  8.   strcpy (str1,"Entrada larga");
  9.  
  10.   char str2[5] = "abcd";
  11.  
  12.   strcpy (str2,str1);
  13.   printf ("\n\nLo que queda en str1: %s\n\nCopiado, nuevo str2:\n%s\n\n",str1,str2);
  14.   printf("\n\nY la cadena str2 impresa caracter a caracter:\n ");
  15.   int i;
  16.   for( i=0; str2[i]; i++)
  17.       printf( "%c",str2[i] );
  18.   return 0;
  19. }
  20.  

Tu regla no se cumple ya que da un error de ejecución en el segundo strcpy. Probablemente porque estemos escribiendo fuera de nuestra memoria reservada.

Fíjate que "da laZga" es justo la cadena str1 sin los 5 caracteres que "cabrían" en str2" de acuerdo a su dimensión. Curioso, ¿no?.
La Z fue introducida después del strcpy, eso quiere decir que esa letra era "común" en las dos cadenas (vuelvo a hacer referencia a mi esquema de la memoria).


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: dudas con strcpy
« Respuesta #12 en: 16 Marzo 2014, 00:38 am »

Tutti claro ahora, se debía a lo que comentas de posiciones memorias seguidas.

¡¡¡¡ Saluditos! ..... !!!!




« Última modificación: 18 Marzo 2014, 23:17 pm por leosansan » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con funcion strcpy().
Programación C/C++
dark-heimdall 1 4,986 Último mensaje 19 Febrero 2011, 06:36 am
por dark-heimdall
problema con uso de strcpy
Programación C/C++
m@o_614 2 2,771 Último mensaje 19 Diciembre 2011, 18:37 pm
por m@o_614
strcpy entre char
Programación C/C++
Jupiter34 5 2,596 Último mensaje 1 Noviembre 2012, 03:44 am
por BatchianoISpyxolo
strcpy en puntero matriz
Programación C/C++
psycho248 9 4,687 Último mensaje 24 Junio 2014, 09:22 am
por eferion
ayuda con strcpy en kubuntu
Programación C/C++
Rom_Stom 6 2,957 Último mensaje 15 Junio 2016, 03:47 am
por Rom_Stom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines