Algunas consideraciones a partir de las dudas que veo

Algunas consideraciones a partir de las dudas que veo

de Gregory Randall -
Número de respuestas: 0

Estimados,

A raíz de intercambios que he visto en el grupo de wattsapp y de dudas que me plantearon ayer, van algunas consideraciones:

a) Hemos incluido un enumerado que define varios códigos de error. Algunos me consultaron si era necesario en todos los casos verificar los errores, por ejemplo en cada printf, fwrite o putchar ver si hay un error de escritura. La respuesta es que no es necesario y nosotros no estamos verificándolo en el autotest. Hemos definido esos tipos de errores pero luego no los utilizamos todos. Por ejemplo no usamos CODIGO_MUY_ LARGO. De todas formas que existan no implica que deban utilizarse. ustedes incluyan el enumerado en el core.h y usen algunos de ellos. Típicamente deben usar TODO_OK cuando la función retorna sin problema y  ARCHIVO_INEXISTENTE si intentan hacer un fopen y no encuentra al archivo. Lo demás es opcional y no tienen que utilizarlo, aunque no nos enojaremos si alguno los utiliza. Si tienen algún error diferente de esos (por ejemplo al intentar hacer un malloc y les da error) entonces agreguen códigos de error al enumerado, poniendo uno específico para ese error, por ejemplo podrían agregar ERROR_MEMORIA al final de la lista (qué número tendría?) para indicar esa situación.

b) He notado que algunos reservan memoria todo el tiempo, incluso para una variable simple. Si tienen que definir por ejemplo el entero titi en vez de decir

int titi;

hacen  un malloc para la variable titi, y luego el free...

Eso no es conveniente. cuando tengan que usar una varable simple (int, char, float), simplemente declarenla. Si quieren su puntero hagan &titi en el caso de

int titi:

c) se están complicando sin necesidad para acceder a un arreglo. Si tienen un arreglo llamado tabla, de estructuras codificacion por ejemplo

codificacion *tabla:

primero reservan memoria para el mismo usando malloc y luego lo acceden como un arreglo. Por ejemplo

tabla[i].nbits = 7;

d) Nosotros les estamos pidiendo ciertas funciones, que van en core.c y core.h, pero si ustedes quieren crear otras funciones auxiliares tienen todo el derecho. Las agregan en core.c y core.h y chau. Las que les pedimos nosotros no pueden faltar pero no hay problema en que existan otras.

Saludos

gregory