Título: [C] Pasar Array como parámetro a funcion INT o FLOAT Publicado por: n-utz en 8 Agosto 2016, 00:27 am Buenas noches, verán me encuentro con un problema, estoy terminando un tp para la facultad, y me encuentro con que debo pasar un array a una funcion INT para que cuente los "ausentes", los "0", y me devuelva la cantidad de estos.
El tema es el siguiente, en el mismo programa tengo el pasaje de este mismo vector a una funcion VOID y me la devuelve a main sin problemas, cuando me la devuelve la quiero enviar así como está a la funcion INT, pero se envía con basura. Les paso a poner el código: OBVIAR LA FUNCION VOID. Código: #include <stdio.h> Título: Re: [C] Pasar Array como parámetro a funcion INT o FLOAT Publicado por: ivancea96 en 8 Agosto 2016, 00:39 am Los bucles están mal. SI el array es de 5 elementos, tienes que recorrer desde 0 hasta 4, no desde 1 hasta 5. Si accedes al índice 5, estás accediendo a un elemento inexistente, y puede desde tirar error, hasta corromper la memoria.
Los for serían: Código
Título: Re: [C] Pasar Array como parámetro a funcion INT o FLOAT Publicado por: n-utz en 8 Agosto 2016, 00:42 am Era eso, las vacaciones me hicieron mal. Gracias!!
PD: Ademas de tanto intentar, vi que el codigo que esta arriba tiene varias cosas mal. No lo usen como ejemplo para pasaje de parametros, cualquier cosa manden MP. Título: Re: [C] Pasar Array como parámetro a funcion INT o FLOAT Publicado por: AlbertoBSD en 8 Agosto 2016, 00:45 am No se como te enseñaron a usar los arreglos pero si es un arreglo de 5 elementos debes de procesar solo los datos del indice 0 al 4
Cuenta conmigo Indice 0 y llevamos 1 Indice 1 y llevamos 2 Indice 2 y llevamos 3 Indice 3 y llevamos 4 Indice 4 y llevamos 5 Deberia de ser algo asi, El detalle que al momento de escribir en el espacio alumnos[5], realmente estas escribiendo en el espacio designado para otra de las variables, se llama bufferoverflow y se da cuando escribes fuera de los limites de un arreglo. Deberia de quedar algo asi: Código
Título: Re: [C] Pasar Array como parámetro a funcion INT o FLOAT Publicado por: n-utz en 8 Agosto 2016, 00:47 am No se como te enseñaron a usar los arreglos pero si es un arreglo de 5 elementos debes de procesar solo los datos del indice 0 al 4 Cuenta conmigo Indice 0 y llevamos 1 Indice 1 y llevamos 2 Indice 2 y llevamos 3 Indice 3 y llevamos 4 Indice 4 y llevamos 5 Deberia de ser algo asi, El detalle que al momento de escribir en el espacio alumnos[5], realmente estas escribiendo en el espacio designado para otra de las variables, se llama bufferoverflow y se da cuando escribes fuera de los limites de un arreglo. Deberia de quedar algo asi: Código
Perfecto, si me lo han ensenado asi, lo que pasa que me desconcerte yo. Al ser "Alumnos" y el numero de indice ser el numero de alumno, quise obviar el elemento 0, como verán, pero me olvide de que el ultimo elemento seria el 4. Gracias che! |