Cita:
Iniciado por aguml y ademas no es infinito. Creo que el maximo son 2 gigas. En c siempre se puede usar malloc y trabajar con memoria dinamica pero si recien empiezas no deberias tratar con ello.
El índice que utiliza std::string es de tipo size_t. En la mayoría de los casos, size_t es de tipo unsigned int, es decir, 32 bits sin signo. Dado que std::string usa el tipo char (8 bits - 1 byte) para almacenar el texto, tenemos que: max = 2^32 = 4.294.967.296 B = 4.194.304 KB = 4.096 MB = 8 GB
Lo que sucede es que los equipos de 32 bits tienen una limitación de memoria direccionable de (creo recordar) unos 2 GB - 3 GB, por lo que no vas a poder superar ese límite en ningún momento. Sin embargo, un entorno de 64 bits es capaz de manejar varios petabytes de información ( 1 PB = -redondeando-1.000.000 GB )
Cita:
Iniciado por vangodp
Código C++:
Ver originalchar c = "Hola Mundo!"; // <--- debería ser char*
if ( c == cadena.c_str() ){ //comparar objeto tipo string con cadena C_string.
//son iguales
}
Espero que no compares nunca dos char* con el operador '==', ya que únicamente estarás comparando la dirección de memoria de ambos punteros jejejeje.