Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/04/2016, 04:44
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Duda en pequeño ejercicio

Cita:
Iniciado por IVICP3 Ver Mensaje
He inicializado el char tal que asi

Código C:
Ver original
  1. char cadena[20] = "";

y me sigue saliendo basura, pero ahora solo me sale un signo, antes me salian hasta que se acababan los espacios del array (hasta que llegaba a 20 celdas) ahora solo me sale uno... que cosa mas rara , no?
Con eso no has inicializado el arreglo con todos los elementos a 0... únicamente has indicado que el primer elemento sea 0 mientras que el resto seguirán con la basura habitual.

Una forma de inicializar la memoria a 0 bastante limpia es usar, por ejemplo, memset:

Código C++:
Ver original
  1. memset(cadena,0,sizeof(cadena));

Otra opción para evitar errores es finalizar manualmente la cadena, añadiendo un '\0' después de finalizar la copia. Quizás algo tal que:

Código C++:
Ver original
  1. cadena[i*2]='\0';

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.