Título: Arreglo y puntero en una funcion [No me corre] Publicado por: barnix456 en 12 Noviembre 2012, 14:16 pm En la escuela, me han dejado un problema sencillo, pero el maestro quiere que usemos, arreglos, punteros y una función, el problema es: "Contar una cierta cantidad de números (he puesto 10) y almacenarlas en mi arreglo, despues de tenerlas ahi, pasarle la direccion de cada datos, no del arreglo completo, sino de cada datos a mi puntero, de cierta forma tambien trabajara como un arreglo de puntero o algo asi, y despues con los punteros hacer el calculo, que en este caso sera una suma, he estado todo el dia, y no me corre, alguna idea... les dejo mi code:
code: Código: #include <stdio.h> Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: C_1^N en 12 Noviembre 2012, 14:33 pm Hola barnix456!!
A ver.. vi dos cuestiones.. el main deberia devolver un entero pq de esta manera le devuelve el estado a la consola una vez finalizado el programa, cuando le pasas el arreglo a la funcion hacelo sin el [sise] el nombre del arreglo es un puntero al primer elemento del mismo y poniendole un subindice especifico le estas pasando el elemento de la posicion sise, no el arreglo completo. Saludos! Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: barnix456 en 12 Noviembre 2012, 14:51 pm Hola C_1^N
Siempre me marca ese error, de que "El tipo de devolucion de main no es int", pero no se que es lo que deberia cambiar, si el codigo esta bien, y si lo ejecuto lo hace con normalidad, ahora en cuanto al codigo, le he dado vueltas y vueltas ya le hice esa modificacion que me dijiste, pase la funcion suma(arreglo[]); y nada Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: satu en 12 Noviembre 2012, 15:04 pm Buenas!!!
Te he cambiado el código, a ver si es esto lo que necesitas: Código
Saludos!! Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: Ferno en 12 Noviembre 2012, 15:10 pm Hola!
Antes que nada, para pasarle a la función el arreglo solo debes hacer: Código
Le estarías pasando por parámetro la dirección al primer elemento del arreglo. Con eso es suficiente para que tu argumento actual actúe ordenadamente. Por otro lado, dentro del for de la función suma no estoy muy seguro de lo que quieres hacer. Pero lo que estás haciendo ahí es sumar las direcciones de memoria de todos los int que forman el arreglo. En realidad no es necesario utilizar ese arreglo de punteros "pnt", pero si tanto lo quieres, fijate que al hacer: Código
En realidad lo que haces ahí es sumar los punteros (que es lo que guarda pnt) es decir, sumas las direcciones de memoria de cada uno de los int correspondientes. Para que esto funcione, lo que debes hacer es desreferenciar dichos punteros: Código
Así estarías sumando los valores correspondientes que apuntan dichos punteros. Si bien esto funcionaría, la verdad es que el code está un poco desordenado y es feo. Fijate de poder arreglarlo y hacer algo más limpio (por ejemplo, ese arreglo de punteros no es necesario). Además, fijate que la función "suma" debería de devolver un "int" y jamás lo hace (sólo imprime la suma por pantalla). Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: barnix456 en 12 Noviembre 2012, 15:13 pm Hola satu
Gracias por el codigo, no sabia eso para limpiar el bufer, entonces anlizando tu codigo, mi variable pnt que en este caso queria que fuera mi puntero osea de esta manera *pnt, no va, si no el puntero es el arreglo, y pnt viene siendo un arreglo cualqueira, la magia esta en pasar a la funcion nuestro arreglo sin un subindice, bueno sin nada.. gracias....!! ;) Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: barnix456 en 12 Noviembre 2012, 15:18 pm una pregunta mas, si estamos trabajando con punteros, puedo imprimir en pantalla la diraccion de ese dato, como lo hago????
Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: Ferno en 12 Noviembre 2012, 15:21 pm Si por ejemplo tenés una variable de tipo "int":
Código Lo que hace "%x" es imprimirlo en hexadecimal, y el ampersand (&) te devuelve la dirección de memoria de la variable. Saludos. Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: C_1^N en 12 Noviembre 2012, 15:22 pm tamb podes hacerlo con %p
Saludos! Título: Re: Arreglo y puntero en una funcion [No me corre] Publicado por: barnix456 en 12 Noviembre 2012, 15:29 pm gracias muchas gracias...!!
|