[C con Clase] Mas cadenas...
rodolfo rosso paz
rodolforossopaz en hotmail.com
Vie Nov 24 21:28:38 CET 2006
Hola Yudenis
char arre[3]="123"; // no estas declarando un arreglo de 4 caracteres
como dices mas abajo,
solo estas reservando 3 posiciones de
memoria para tu arreglo
Como ya te explico Salvador en otro de tus correos, el C++ agraga un
caracter 0 al final de toda cadena. Pero el programador debe tener en cuenta
ese caracter añadido por el compilador a la hora de definir el tamaño de
sus arreglos.
Por lo tanto siempre debes declarar el arreglo con una unidad mas del largo
maximo que esperas para tu cadena.
char arre[4]="123"; // el compilador le agrega el 0 al final
>From: Yudenis Martínez Abreu <ymabreu en ingenieria.unica.cu>
>Reply-To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>To: "listaC" <cconclase en listas.conclase.net>
>Subject: [C con Clase] Mas cadenas...
>Date: Fri, 24 Nov 2006 14:43:47 -0500
>
>Hola.
>
>Seguimos con las cadenas:
>
>Si escribo:
>
>
>
> char arre[3]="123";
>
>
>
>el compilador me devuelve este aviso:
>
>initializer-string for array of chars is too long
>
>
>
>No se supone que el arreglo tendría 0,1,2,3 "gavetas" o lo que es lo mismo
>cuatro espacios de memorias reservados donde almacenaría:
>
>"gavetas" Caracteres guardados
>
> 0------------------1
>
> 1------------------2
>
> 2------------------3
>
> 3------------------0x00
>
>
>
>=>Suficientes espacios. Por que entonces devuelve ese mensaje el copilador?
>
> Como siempre, gracias de antemano,
>
>
>Yudenis.
>
>_______________________________________________
>Cconclase mailing list
>Cconclase en listas.conclase.net
>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.latam.msn.com/
Más información sobre la lista de distribución Cconclase