Problema en C

DaGGoTH

Pues veréis, tengo este trocito de código http://rafb.net/p/IzvxfS12.html (está sin terminar y además no incluyo el .h) pero vamos, quería hacerlo con funciones (agregar, borrar y mostrar) y me da estos errores del linker:

[Linker error] undefined reference to agregar'
[Linker error] undefined reference to
borrar'
[Linker error] undefined reference to `mostrar'

¿Qué estoy haciendo mal?

Gracias :P

LOc0

En C no se pueden anidar las funciones.

Salu2 ;)

DaGGoTH

Oh vaya ahí estaba el error!! Jaja Gracias!!! :P

¿Cómo podría hacerlo utilizando las mismas funciones que tengo definidas? (agregar, borrar y mostrar)

smintcs

defines cada funcion por libre, teniendo en cuenta el orden, no me he fijado con mucho detalle pero pones primero agregar con todo lo que tiene, luego borrar, y luego en la funcion esa grande, en vez de meter la funcion agregar entera simplemente haces una llamada, no se si me estare explicando bien pero tu pones cada funcion por suelto, ordenadas pa que no te de warning y en la que te haga falta usar otra pues pones el agregar();

JuAn4k4

Ponlas desordenadas y arriba del todo ( debajo de los includes ) pones alusiones a todo y fiesta:

void agregar();
void borrar();
void ..();

DaGGoTH

Pues ahora se me plantea otro error, y es que en este codigo:

http://pastebin.com/860088

Lo ejecuto todo por primera vez normalmente, pero luego, en la ejecucion cuando pregunta ¿Desea introducir algun alumno mas? Le doy que si, lo introduzco y me calcula mal la media, dandome como basura.

He probado a depurar y nada, no veo el error :(

maRc

No he dicho nada.

PD: Mañana si eso le echo un vistacillo.

smintcs

lo he mirado rapido y me parece que una vez que acaba, cuando pides si quiere meter otro alumno, si elije que si sumas uno a num, pero la memoria que tienes reversada para el puntero es para el num del principio, es decir tu reservaste memoria para num y num es 8, aunq luego num sea 9 tu tienes reservado para 8

no se si sera eso esque estoy empezando con memoria dinamica y es lo que me ha parecido, si no es eso algun otro sabra que es y asi aprendemos todos

DaGGoTH

Sí, además de tener que reservar más memoria con realloc() había confundido un i con un num.

Gracias :P

LOc0

Usando una lista simple (que me parece más lógico que tirar de realloc todo el rato).

http://pastebin.com/860768

Salu2 ;)

DaGGoTH

#10 Muchas gracias tío, como siempre en tu linea :P

Usuarios habituales

  • DaGGoTH
  • LOc0
  • smintcs
  • maRc
  • JuAn4k4