/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Porque este error?

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
sasha12



Registrado: 27 Sep 2007
Mensajes: 13

MensajePublicado: 04/10/2007 12:54 pm
Título: Porque este error?

Código:

#include <iostream>
using namespace std;


char * word;
int cant;

int LongitudCadena (char * a)
{
    for (int i = 0; a[i] != '\0'; i++)
    {
        cant ++;
    }
    cout << "La palabra " << a << " tiene " << cant << " letras" << endl;
}

int main ()
{
    cout << "Programa que calcula la longitud de una cadena de caracteres\n";
    cout << "Inserta una palabra: \n";
    [b]cin >> word;[/b]
    LongitudCadena (word);
    cin.get ();
    return 0;
}


Yo compilo este error sin ningun error, sin embargo en la ejecucion, me da un runtime error en esta parte del codigo:
Código:

[b]cin >> word;[/b]

Alguien me puede decir si es que tengo un error al declarar el puntero o algo asi? Yo recien empiezo en c++ y tngo un nivel muy basico, a si que si tengo muchos errores, es por eso simplemente
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 04/10/2007 1:43 pm
Título:

Por partes.

En la funcion "LongitudCadena" no es necesario utilizar dos contadores ya que estos (las variables "i" y "cant") siempre tienen el mismo valor, seria mejor utilizar la variable "cant" directamente y tambien te falta indicar el valor de retorno de esa funcion:
Código:
int LongitudCadena (char * a)
{
   for (cant = 0; a[cant] != '\0'; cant++)
      ;
   
   cout << "La palabra " << a << " tiene "
      << cant << " letras" << endl;
   
   return cant;
}


En cuanto al puntero "word" antes de poder utilizarlo tienes que reservar un bloque de memoria y guardar la direccion en memoria de este en el mentado puntero. Para esto ultimo puedes utilizar el operador new, en esta forma:
Código:
char *palabra = new char [255];

/* ... uso del array de caracteres "palabra" ... */

delete palabra;


Por ultimo siempre que tengas un problema con uno de tus programas compilalo en el modo mas estricto que permita tu compilador ya que esa es la forma mas sencilla de detectar los errores en el programa.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com