C/Visual C - FE DE ERRATAS

 
Vista:

FE DE ERRATAS

Publicado por Gonzalo (17 intervenciones) el 28/05/2001 01:02:57
El programa anterior escribi el scanf() de esta forma scanf("\%s\",s); y deberia haber sido asi scanf("%s",s);

#include<stdio.h>
#include<conio.h>

void main()
{
int ctr=0;
char *s;
clrscr();
scanf("%s",s);
while(*s)
{
s++;
ctr++;
}
printf("Numero de letras %d",ctr);
getche();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FE DE ERRATAS

Publicado por ismael (230 intervenciones) el 28/05/2001 07:16:05
Hay más problemas_
-La no asignación dinámica de memoria hace que
- la sentencia s++ cree problemasal salir del bucle.
Piénsalo. si no lo decuces, enviame un mail.
Un saludo
Ismael
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FE DE ERRATAS

Publicado por Germán B. (143 intervenciones) el 28/05/2001 07:19:56
El problema es que 's' es un puntero a char no inicializado, es decir, no apunta a ninguna dirección donde sepamos que existe memoria reservada para almacenar una cadena de caracteres. Es simplemente un puntero de valor desconocido. Entonces, al hacer el scanf(), el dato ingresado por el usuario es almacenado en un lugar de la memoria que probablemente no está disponible, y esto produce resultados impredecibles, hasta podría colgar la máquina.
El puntero usado en scanf() debe apuntar a memoria reservada para nuestro dato, ya sea reservada en forma dinámica o declarando a 's' como array con una cantidad fija de caracteres, por ejemplo char s[80];
Espero que sirva.
G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FE DE ERRATAS

Publicado por Gonzalo (17 intervenciones) el 29/05/2001 18:20:35
problema solucionado...
Gracias por ayudarme.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar