Linux - Cadenas en c de Linux ???????

 
Vista:

Cadenas en c de Linux ???????

Publicado por Sebas (1 intervención) el 13/05/2003 12:27:40
Alguien sabe cómo se tratan las cadenas de caractéres en Linux? es que yo las inicializo a un tamaño( por ejemplo: cadena[20]=""; ) pero me da errores de Segmentation fault, me dijeron q tenia q reservar memoria para ellas y hice esto: char *cadena=""; cadena=calloc(20,sizeof(char)); pero sigue dándome problemas, si me estoy equivocando en algo decídmelo por favor. 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:Cadenas en c de Linux ???????

Publicado por chuidiang (101 intervenciones) el 13/05/2003 14:59:00
Se hace como en cualquier C.

Si pones
char cadena[20];

tienes una cadena de 20 caracteres, incluido un \0 que se pone automáticamente al final, es decir, sólo 19 caracteres "útiles" más un fin de cadena.

Si pones
char *cadena;

efectivamente tienes que reservarle la memoria, con el mismo calloc que tienes. Eso si, debes reservar un caracter más para el final de cadena.

Si sigue dándote problemas, tendrás que revisar un poco el manejo que haces con las cadenas y los punteros.

A falta de otro debugger mas potente, compila con la opción -g, arranca

$ gdb miprograma

luego pones run y cuando se pare porque se ha caido, escribe "list". Te saldrá la línea que ha provocado el fallo.

Se bueno.
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