Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/08/2007, 08:19
Avatar de _Lucifer_
_Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: Capacidad de los tipos

Las si vas a inicializar el arreglo de char al momento de la declaración debes hacerlo asi:

Código:
char b[] = "qwert";
//otra manera :
char *b = "qwert";
Cuando tratas de guardar una cadena de más de 5 caracteres en el ejemplo que pusiste:
Código:
#include<iostream>
using namespace std;
int main(){
    char b[5];
    cin >> b;
    cout << b << endl;
    return 0;
}
Estás escribiendo en una zona de memoria no reservada, es decir de b[5] en adelante, por eso te da un error de violación de segmento.

Para evitar esa clase de cosas el C++ te provee de una clase llamada string, que reserva más memoria a medida que la longitud de los caracteres que almacenas aumenta.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: