C/Visual C - Que esta mal en este codigo

 
Vista:

Que esta mal en este codigo

Publicado por Daniel Rodas (1 intervención) el 09/08/2005 02:25:30
Tengo el siguiente codigo para hacer una busqueda lineal simple que compila sin errores de sintaxis pero no hace la busqueda pues al depurarlo me da error de violacion de acceso a memoria, y pues no veo nada malo, porfavor podria alguien ayudarme a ver que tiene de malo este codigo?

char Buscar(char dato){ /* dato es ingresado desde main */
struct Pila *info;
int i,enc;

enc=0; /* 0=No encontrado; 1=Encontrado */
info = principio;
for(i=1;i<10;++i) {
if(dato=info->Dato) {
enc = 1;
printf("Lo encontro");
getchar();
}
else {
enc = 0;
printf("No lo encontro");
getchar();
}
}
return 0;
}

De antemano gracias.
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:Que esta mal en este codigo

Publicado por fernando.gomez (1603 intervenciones) el 09/08/2005 04:30:30
Mmm... no entiendo bien tu código... ¿Para qué el bucle for, si nunca actualizas los datos? Es decir, la estructura info nunca se va a actualizar... Además esta línea:

if(dato=info->Dato)

siempre se evaluará a true, ya que regresa si se pudo asignar el caracter Dato que se encuentra en info, al caracter de parámetro dato. ¿Seguro que no quieres decir:

if (dato == info->Dato)

en su lugar?

Y finalmente, inicializas info a principio, que quién sabe qué variable es, pero supongo que es un puntero a struct Pila. A mí me suena a que principio --y por ende, info-- no están inicializadas en las dos formas posibles:

struct Pila algo;
struct Pila* primero = &algo;

o bien

struct Pila* primero = malloc(sizeof(Pila));

Por ahí debe andar el error. Pero creo que te podríamos ayudar mejor si nos dijeras las intenciones de tu código... que está bien raro (o al menos, yo no entiendo qué quieres hacer).

Saludos.
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