<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
haber tu estructura es global al main.c<br>solo se podria acceder a ella dentro del fichero main.c(a sus campos)<br>si quieres usar los datos de tu estructura desde otra funcion en otro fichero.c tienes dos opciones<br><br>hacer en el otro .c ingreso.c<br><br>extern persona personas[10]; como global fuera de cualquier funcion debajo del #include "ingreso.h"<br><br>quedaria de la siguiente forma<br><br>#include "ingreso.h"<br>extern persona personas[10];<br><br>void ingreso(tiposparametros nombre)<br>{<br>.............<br>}<br><br>en el .h seria recomendable escribir el tipo de la estructura se suele hacer asi practicas de programacion vamos ejej<br>#include <stdio.h><br>#include <stdlib.h><br>(para que los vea ingreso.c)<br><br><br>typedef struct{<br>char nombre[200];<br>long telefono;<br> char direccion[200];<br>}persona;<br><br>//prototipos<br><br>void ingreso(tiposparametros nombre);<br><br><br><br><br><br>La siguiente opcion es que para pases la estructura a la funcion y devuelvas otra con los pametros obtenidos  por la misma<br><br>pasar una estructura por referencia es pasar la direccion de memoria en vez del contenido<br><br>si pasamos estructura podremos leer su contenido pero si realizamos cambios es decir ponemos alguno de sus valores  a otro nuevo solo serian vistos dentro de la funcion que lo ha llamado<br>y al volver al main despues de ejecutar la funcion no habrian cambiado <br><br>pasar  por referencia es pasar un puntero con la posicion de memoria si usas una estructura normal puedes pasarla a la funcion con &estructura si es un puntero a estructura como haces tu ya que creas un vector de estructuras la puedes pasar simplemente con estructura y luego usarla dentro de la funcion<br>ah ten en cuenta que como pasaspuntero a partir ahora(al haberla pasado a la funcion) deberas usar el operador -> en vez del operador .<br><br>ej<br><br>typedef struct<br>{<br> int a;<br>}estructura<br><br>estructura miestructura<br>estructura miestructura2[5]<br><br>void fun1(estructura* miestructura) prototipo1<br>void fun2(estructura* miestructura) prototipo2<br><br><br>miestructura.a = 5;<br><br>void fun1(&miestructura);<br>void fun2(miestructura2);<br><br><br>bien ahora tanto una funcion como la otra en el desarrollo sería:<br>void fun1(estructura* m)<br>{<br>   m->a = 3<br>  return;<br>}<br><br>si volvemoa al main <br>miestructura.a valdria 3 puesto que hemos modificado el contenido de la estructura a traves del puntero que la referencia<br><br>venga espero haberte ayudado un saludo Juanan<br><br><br>> To: cconclase@listas.conclase.net<br>> From: bruceleechile@gmail.com<br>> Date: Sun, 24 May 2009 22:34:20 +0200<br>> Subject: [C con Clase] paso de argumentos en programacion modular en C<br>> <br>> Hola a todos, primero que nada decirles que recien estoy aprendiendo,  bueno mi consulta es la sgte.<br>> <br>>    tengo un programa separado en 2 modulos, en el main.c tengo una structura:<br>> <br>> main.c <br>> <br>> #include <stdio.h><br>> #include <string.h><br>> #include "ingreso.h"<br>> <br>> typedef struct{<br>>     char nombre[200];<br>>     long telefono;<br>>     char direccion[200];<br>>     }persona;<br>> persona personas[10];<br>> <br>> void main(){<br>>     ingreso();<br>>     printf("los datos son:"); //muestro los datos ya ingresados<br>>     .<br>>      .<br>>     .<br>>     return;<br>> }<br>> <br>> <br>> ingreso.c<br>> <br>> #include <stdio.h><br>> #include <string.h><br>> <br>> void ingreso(){<br>> <br>>     printf("ingrese el nombre:");<br>>     fgets(nose que va, 200, stdin);<br>>     printf("ingrese direccion: ");<br>>     fgets(nose que va, 200, stdin);<br>>     printf("ingrese telefono: ");<br>>     fgets(nose que va, 200, stdin);<br>>     //transformo el telefono a long<br>>       ..<br>>    .<br>> <br>>     ...<br>>    return;<br>> }<br>> <br>> BUeno mi consulta es como guardo los datos ingresados en ingreso(), dentro de la estructura que esta en el main.c, como es el asunto del paso de argumentos a funciones con estructuras, e leido algo de que me recomiendan que las estructuras las pase como referencia, pero no entiendo eso, por favor si alguien me pudiera ayudar, gracias.<br>> <br>> PD: el ingreso.h como seria en este caso??<br>> <br>> chao gracias nuevamente<br>> _______________________________________________<br>> Lista de correo Cconclase Cconclase@listas.conclase.net<br>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<br>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<br><br /><hr />Más rápido, fácil, seguro y con lo que más te gusta de Windows Live, así es el nuevo Internet Explorer 8  <a href='http://ie8.msn.com/microsoft/internet-explorer-8/es-es/ie8.aspx' target='_new'>¡Descárgatelo! </a></body>
</html>