C/Visual C - como concatenar a un string un char?

 
Vista:

como concatenar a un string un char?

Publicado por ?? (2 intervenciones) el 13/09/2001 19:42:51
Alguien sabe como concatenar a un string un char?
declaracion: char r;
char *cadena=NULL;
proceso: cadena=\\\\\\\"\\\\\\\";
strcpy(cadena,&r);

Pero me sale: el programa hizo una operacion no valida.
Gracias

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como concatenar a un string un char?

Publicado por Oscar Vazquez (9 intervenciones) el 14/09/2001 21:55:13
Tu problema radica en que el string
char *cadena = NULL; no cuenta con memoria asignada, ya que al inicializarlo con "NULL", lo que logaste fue un puntero a un string vació.

Luego le asignas otro puntero
cadena = "12345678";

si intentas agregarle un byte a "cadena" estarás sobre-escribiendo memoria no asignada a tu variable.

Una opción de resolverlo es definiendo cadena con un tamaño determinado:
char cadena[10]; En este caso podras agregar hasta 9 bytes y el último correponderá al NULL final.

strcpy( cadena, "123456789" );
La función strcpy se encarga de agregar el NULL en el byte 10 de tu string.

Si no quieres fijar de antemano el tamaño de tu string, deberás utilizar asignación de memoria

char *cadena=NULL;
int nMaxBytes = 100;
cadena = (char *)malloc( nMaxBytes );

/* Utilizar cadena */
strcpy( cadena, "123456789...." ); /* hasta nMaxBytes-1 */

/* al finalizar liberar la memoria asignada */
free( cadena );

De esta forma podrás determinar durante la ejecución del programa la capacidad de tu string.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar