• Domingo 29 de Septiembre de 2024, 04:29

Autor Tema:  Arrays con basura  (Leído 1490 veces)

cremix

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Arrays con basura
« en: Sábado 13 de Junio de 2009, 13:02 »
0
Hola:

No sé porqué razón defino los arrays con un tamaño determinado y cuando los imprimo por pantalla me salen con basura. Estoy haciendo una función llamada append que me una cadenas (por cierto, ¿sabéis si ya existe una?). Aquí os enseño el código:

Código: C++
  1.  
  2. char s1[5] = "abcd";
  3. char s2[5] = "efgh";
  4.  
  5. char *a;
  6.  
  7. a = append(s1,s2);
  8. cout << a << endl;
  9.  
  10.  
  11. char* append(char *cadena1,char *cadena2)
  12. {
  13.     int size=0,size1=0,i=0;
  14.  
  15.         //Obtengo lo que mediría la nueva cadena
  16.     while(cadena1[i]!='')
  17.     {
  18.         size1++;
  19.         i++;
  20.     }
  21.    
  22.     i=0;
  23.  
  24.     while(cadena2[i]!='')
  25.     {
  26.         size++;
  27.         i++;
  28.     }
  29.  
  30.     size += size1;
  31.  
  32.        //creo el nuevo array
  33.     char *res = new char[size];
  34.         //lo inicializo
  35.     for(int i=0;i<size1;i++)
  36.         res[i] = cadena1[i];
  37.    
  38.  
  39.     for(int i=size1;i<size;i++)
  40.         res[i] = cadena2[i-size1];
  41.  
  42.     return res;
  43. }
  44.  
  45.  
  46.  

¿Alguien puede decirme por qué pasa?

Un saludo

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Arrays con basura
« Respuesta #1 en: Sábado 13 de Junio de 2009, 15:29 »
0
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Arrays con basura
« Respuesta #2 en: Sábado 13 de Junio de 2009, 16:13 »
0
¿Estas poniendo el cero terminador? El tamaño en bytes de la cadena tiene que ser el numero de caracteres de las dos cadenas mas uno (el cero terminador que va justo al final).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cremix

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Arrays con basura
« Respuesta #3 en: Sábado 13 de Junio de 2009, 16:26 »
0
Era eso. Tenía que ponerle el ''. Menudo despiste. Muchísimas gracias.
Un saludo

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Arrays con basura
« Respuesta #4 en: Sábado 13 de Junio de 2009, 16:33 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.