Para limpiar o vaciar la basura que pueda contener una cadena de tipo char en lenguaje C he utilizado la función memset. Debido a que intentaba concatenar continuamente valores y en determinado momento poner valores de tamaño menor; sin embargo, el resultado era que sobrescribía los caracteres pero quedaban los existentes anteriormente. Es decir, si antes estaba la cadena «cadena» y luego escribía un «uno», el resultado esperado era tener «uno», pero se obtiene «unoena». Lo solucioné al utilizar la función memset que sobrescribe los valores en memoria con el valor del segundo parámetro.
char varCadena[50];
...
memset(varCadena, 0, 50); //limpiar para que no lo una con la basura
Donde:
varCadena: es la variable de tipo char
0: el valor con el cual rellenar
50: la longitud de la cadena
Muchas gracias
ResponderEliminarxd
ResponderEliminarGracias compadre, pensé que no funcionaria ya que se estaba llenando de 0's una cadena tipo char, pero sin duda si que funciona, aun no entiendo porque con 0's pero esta bien (soy medio nuevo así que no te me esponjes si esto es algo básico y no lo se xD), porciento entonces esto también funcionaria con un arreglo tipo int?, lo probare luego
ResponderEliminargracias!
ResponderEliminar