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:
char s1[5] = "abcd";
char s2[5] = "efgh";
char *a;
a = append(s1,s2);
cout << a << endl;
char* append(char *cadena1,char *cadena2)
{
int size=0,size1=0,i=0;
//Obtengo lo que mediría la nueva cadena
while(cadena1[i]!=' ')
{
size1++;
i++;
}
i=0;
while(cadena2[i]!=' ')
{
size++;
i++;
}
size += size1;
//creo el nuevo array
char *res = new char[size];
//lo inicializo
for(int i=0;i<size1;i++)
res[i] = cadena1[i];
for(int i=size1;i<size;i++)
res[i] = cadena2[i-size1];
return res;
}
¿Alguien puede decirme por qué pasa?
Un saludo