std::cin puede causar un buffer overflow?

Iniciado por Sauruxum, 8 Noviembre 2010, 20:47 PM

0 Miembros y 1 Visitante están viendo este tema.

Sauruxum

Buenas.

Estoy haciendo un programa y ya estoy en las fases finales de escritura del codigo, pero me encuentro en una posicion que me deja con una duda.

A cierto punto hago una cosa del tipo:

char *f;

...
...

cin>>f;


Mi pregunta es: esto puede en algun modo causar un BOF?
Estuve viendo algunos ejemplos de BOFs pero en especifico no encuentro este, aun asi me queda la duda ya que esto en ningun modo controla el tamaño de la cadena... o no se, quiza me equivoco en el concepto del BOF.

Saludos

Littlehorse

Si obviamente, si la entrada de datos excede el tamaño del buffer, un BOF ocurriría. De por si, ese operador no chequea ningún tipo de limite.

Podes usar getline o utilizar cin con width ya sea usando ::width o setw:

Código (cpp) [Seleccionar]
  cin.width (10);
  cin >> str;




An expert is a man who has made all the mistakes which can be made, in a very narrow field.