Foros del Web » Programación para mayores de 30 ;) » C/C++ »

burbujeo

Estas en el tema de burbujeo en el foro de C/C++ en Foros del Web. hola gente Estoy tratando de hacer este ejercicio para la facu y me tira este error: unhandled exeption in TP2.exe: 0xc0000005: access violation espero me ...
  #1 (permalink)  
Antiguo 11/07/2008, 14:29
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
burbujeo

hola gente
Estoy tratando de hacer este ejercicio para la facu y me tira este error:
unhandled exeption in TP2.exe: 0xc0000005: access violation
espero me den una solucion.
muchas gracias desde ya.


Código:
void ordenar(char alumno[60][20])
{
	int i;
	int h;
	char aux[20];

	for(i=0;i<59;i++)
	{
		for(h=0;h<59;h++)
		{
//printf("a: %s",alumno[h]);

			if (strcmp(alumno[h],alumno[h+1])>0)
			{
				strcpy(aux,alumno[h+1]);
				strcpy(alumno[h+1],alumno[h]);
				strcpy(alumno[h],aux);
			}
		}
	}

	printf("Lista de alumnos: \n");

	for(i=0;i<59;i++)
	{
		printf("%s \n",alumno[i]);
	}

}
  #2 (permalink)  
Antiguo 11/07/2008, 15:47
 
Fecha de Ingreso: junio-2008
Mensajes: 63
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: burbujeo

Debe ser que alguno de los alumnos tiene un nombre mayor que 20 caracteres, y la función strcpy está fallando.

De paso, no se está mostrando el listado de alumnos completo, el for debe ser hasta i<60:

Código:
	for(i=0;i<60;i++)
	{
		printf("%s \n",alumno[i]);
	}
  #3 (permalink)  
Antiguo 13/07/2008, 09:36
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: burbujeo

Hasta donde yo sabía el strcpy pelado copiaba un string hasta donde encuentra el '\0' o '\n'. Si sus arrays/strings no tienen ese caracter al final el strcpy querrá seguir copiando e intentará leer/copiar memoria a la que no tienes permiso.

O sea, que el array tenga un tamaño fijo con garantiza que el strcpy te funcione.

Suerte!
__________________
Saludoss
Guille
  #4 (permalink)  
Antiguo 14/07/2008, 06:56
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: burbujeo

Gracias por las respuestas, pero no encuntro soluciones, de todas maneras, ya lo entregue, y le comente al profe sobre el error. Me dijo que estaba bien echo, que lo iba a revisar para ver porque me da ese error, en cuanto tenga respuesta les cuento.
Saludos
  #5 (permalink)  
Antiguo 03/08/2008, 16:05
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: burbujeo

ese error te lo da cuando queres acceder a una posicion de memoria que no definiste en el array.
por ejemplo .

int vector [20];

vector [21] = 0 ;

por lo que vi, tu codigo esta bien. solo que tendras algun problema en la matriz que pasas como parametro a la funcion. quizas ingresaste algun alumno con un nombre muy largo
  #6 (permalink)  
Antiguo 05/08/2008, 09:19
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: burbujeo

gracias por las respuestas, el burbujeo esta perfecto, el error esta cuando inicialice el vector.
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:02.